diff --git a/core/java/android/app/Instrumentation.java b/core/java/android/app/Instrumentation.java
index af1c752..9ae5c10 100644
--- a/core/java/android/app/Instrumentation.java
+++ b/core/java/android/app/Instrumentation.java
@@ -1346,7 +1346,7 @@
         Application app = getFactory(context.getPackageName())
                 .instantiateApplication(cl, className);
         app.attach(context);
-        AttestationHooks.initApplicationBeforeOnCreate(app);
+        AttestationHooks.initApplicationBeforeOnCreate(context);
         return app;
     }
     
@@ -1364,7 +1364,7 @@
             ClassNotFoundException {
         Application app = (Application)clazz.newInstance();
         app.attach(context);
-        AttestationHooks.initApplicationBeforeOnCreate(app);
+        AttestationHooks.initApplicationBeforeOnCreate(context);
         return app;
     }
 
diff --git a/core/java/com/android/internal/gmscompat/AttestationHooks.java b/core/java/com/android/internal/gmscompat/AttestationHooks.java
index 5ee1058..8996ca8 100644
--- a/core/java/com/android/internal/gmscompat/AttestationHooks.java
+++ b/core/java/com/android/internal/gmscompat/AttestationHooks.java
@@ -17,8 +17,10 @@
 package com.android.internal.gmscompat;
 
 import android.app.Application;
+import android.content.Context;
 import android.os.Build;
 import android.os.Build.VERSION;
+import android.text.TextUtils;
 import android.util.Log;
 
 import java.lang.reflect.Field;
@@ -67,9 +69,14 @@
         }
     }
 
-    public static void initApplicationBeforeOnCreate(Application app) {
-        String packageName = app.getPackageName();
-        String processName = Application.getProcessName();
+    public static void initApplicationBeforeOnCreate(Context context) {
+        final String packageName = context.getPackageName();
+        final String processName = Application.getProcessName();
+
+        if (TextUtils.isEmpty(packageName) || TextUtils.isEmpty(processName)) {
+            Log.e(TAG, "Null package or process name");
+            return;
+        }
 
         if (PACKAGE_GMS.equals(packageName)) {
             setBuildField("TIME", System.currentTimeMillis());
