Loading core/java/android/app/ActivityThread.java +12 −1 Original line number Diff line number Diff line Loading @@ -5442,7 +5442,8 @@ public final class ActivityThread extends ClientTransactionHandler { * runtime's instruction set is. */ private String getInstrumentationLibrary(ApplicationInfo appInfo, InstrumentationInfo insInfo) { if (appInfo.primaryCpuAbi != null && appInfo.secondaryCpuAbi != null) { if (appInfo.primaryCpuAbi != null && appInfo.secondaryCpuAbi != null && appInfo.secondaryCpuAbi.equals(insInfo.secondaryCpuAbi)) { // Get the instruction set supported by the secondary ABI. In the presence // of a native bridge this might be different than the one secondary ABI used. String secondaryIsa = Loading Loading @@ -5671,6 +5672,16 @@ public final class ActivityThread extends ClientTransactionHandler { "Unable to find instrumentation info for: " + data.instrumentationName); } // Warn of potential ABI mismatches. if (!Objects.equals(data.appInfo.primaryCpuAbi, ii.primaryCpuAbi) || !Objects.equals(data.appInfo.secondaryCpuAbi, ii.secondaryCpuAbi)) { Slog.w(TAG, "Package uses different ABI(s) than its instrumentation: " + "package[" + data.appInfo.packageName + "]: " + data.appInfo.primaryCpuAbi + ", " + data.appInfo.secondaryCpuAbi + " instrumentation[" + ii.packageName + "]: " + ii.primaryCpuAbi + ", " + ii.secondaryCpuAbi); } mInstrumentationPackageName = ii.packageName; mInstrumentationAppDir = ii.sourceDir; mInstrumentationSplitAppDirs = ii.splitSourceDirs; Loading core/java/android/content/pm/InstrumentationInfo.java +14 −0 Original line number Diff line number Diff line Loading @@ -101,6 +101,12 @@ public class InstrumentationInfo extends PackageItemInfo implements Parcelable { /** {@hide} */ public String credentialProtectedDataDir; /** {@hide} */ public String primaryCpuAbi; /** {@hide} */ public String secondaryCpuAbi; /** {@hide} Full path to the directory containing primary ABI native libraries. */ public String nativeLibraryDir; Loading Loading @@ -131,6 +137,8 @@ public class InstrumentationInfo extends PackageItemInfo implements Parcelable { dataDir = orig.dataDir; deviceProtectedDataDir = orig.deviceProtectedDataDir; credentialProtectedDataDir = orig.credentialProtectedDataDir; primaryCpuAbi = orig.primaryCpuAbi; secondaryCpuAbi = orig.secondaryCpuAbi; nativeLibraryDir = orig.nativeLibraryDir; secondaryNativeLibraryDir = orig.secondaryNativeLibraryDir; handleProfiling = orig.handleProfiling; Loading Loading @@ -160,6 +168,8 @@ public class InstrumentationInfo extends PackageItemInfo implements Parcelable { dest.writeString(dataDir); dest.writeString(deviceProtectedDataDir); dest.writeString(credentialProtectedDataDir); dest.writeString(primaryCpuAbi); dest.writeString(secondaryCpuAbi); dest.writeString(nativeLibraryDir); dest.writeString(secondaryNativeLibraryDir); dest.writeInt((handleProfiling == false) ? 0 : 1); Loading Loading @@ -190,6 +200,8 @@ public class InstrumentationInfo extends PackageItemInfo implements Parcelable { dataDir = source.readString(); deviceProtectedDataDir = source.readString(); credentialProtectedDataDir = source.readString(); primaryCpuAbi = source.readString(); secondaryCpuAbi = source.readString(); nativeLibraryDir = source.readString(); secondaryNativeLibraryDir = source.readString(); handleProfiling = source.readInt() != 0; Loading @@ -208,6 +220,8 @@ public class InstrumentationInfo extends PackageItemInfo implements Parcelable { ai.dataDir = dataDir; ai.deviceProtectedDataDir = deviceProtectedDataDir; ai.credentialProtectedDataDir = credentialProtectedDataDir; ai.primaryCpuAbi = primaryCpuAbi; ai.secondaryCpuAbi = secondaryCpuAbi; ai.nativeLibraryDir = nativeLibraryDir; ai.secondaryNativeLibraryDir = secondaryNativeLibraryDir; } Loading services/core/java/com/android/server/pm/PackageManagerService.java +2 −0 Original line number Diff line number Diff line Loading @@ -11488,6 +11488,8 @@ public class PackageManagerService extends IPackageManager.Stub a.info.dataDir = pkg.applicationInfo.dataDir; a.info.deviceProtectedDataDir = pkg.applicationInfo.deviceProtectedDataDir; a.info.credentialProtectedDataDir = pkg.applicationInfo.credentialProtectedDataDir; a.info.primaryCpuAbi = pkg.applicationInfo.primaryCpuAbi; a.info.secondaryCpuAbi = pkg.applicationInfo.secondaryCpuAbi; a.info.nativeLibraryDir = pkg.applicationInfo.nativeLibraryDir; a.info.secondaryNativeLibraryDir = pkg.applicationInfo.secondaryNativeLibraryDir; mInstrumentation.put(a.getComponentName(), a); Loading
core/java/android/app/ActivityThread.java +12 −1 Original line number Diff line number Diff line Loading @@ -5442,7 +5442,8 @@ public final class ActivityThread extends ClientTransactionHandler { * runtime's instruction set is. */ private String getInstrumentationLibrary(ApplicationInfo appInfo, InstrumentationInfo insInfo) { if (appInfo.primaryCpuAbi != null && appInfo.secondaryCpuAbi != null) { if (appInfo.primaryCpuAbi != null && appInfo.secondaryCpuAbi != null && appInfo.secondaryCpuAbi.equals(insInfo.secondaryCpuAbi)) { // Get the instruction set supported by the secondary ABI. In the presence // of a native bridge this might be different than the one secondary ABI used. String secondaryIsa = Loading Loading @@ -5671,6 +5672,16 @@ public final class ActivityThread extends ClientTransactionHandler { "Unable to find instrumentation info for: " + data.instrumentationName); } // Warn of potential ABI mismatches. if (!Objects.equals(data.appInfo.primaryCpuAbi, ii.primaryCpuAbi) || !Objects.equals(data.appInfo.secondaryCpuAbi, ii.secondaryCpuAbi)) { Slog.w(TAG, "Package uses different ABI(s) than its instrumentation: " + "package[" + data.appInfo.packageName + "]: " + data.appInfo.primaryCpuAbi + ", " + data.appInfo.secondaryCpuAbi + " instrumentation[" + ii.packageName + "]: " + ii.primaryCpuAbi + ", " + ii.secondaryCpuAbi); } mInstrumentationPackageName = ii.packageName; mInstrumentationAppDir = ii.sourceDir; mInstrumentationSplitAppDirs = ii.splitSourceDirs; Loading
core/java/android/content/pm/InstrumentationInfo.java +14 −0 Original line number Diff line number Diff line Loading @@ -101,6 +101,12 @@ public class InstrumentationInfo extends PackageItemInfo implements Parcelable { /** {@hide} */ public String credentialProtectedDataDir; /** {@hide} */ public String primaryCpuAbi; /** {@hide} */ public String secondaryCpuAbi; /** {@hide} Full path to the directory containing primary ABI native libraries. */ public String nativeLibraryDir; Loading Loading @@ -131,6 +137,8 @@ public class InstrumentationInfo extends PackageItemInfo implements Parcelable { dataDir = orig.dataDir; deviceProtectedDataDir = orig.deviceProtectedDataDir; credentialProtectedDataDir = orig.credentialProtectedDataDir; primaryCpuAbi = orig.primaryCpuAbi; secondaryCpuAbi = orig.secondaryCpuAbi; nativeLibraryDir = orig.nativeLibraryDir; secondaryNativeLibraryDir = orig.secondaryNativeLibraryDir; handleProfiling = orig.handleProfiling; Loading Loading @@ -160,6 +168,8 @@ public class InstrumentationInfo extends PackageItemInfo implements Parcelable { dest.writeString(dataDir); dest.writeString(deviceProtectedDataDir); dest.writeString(credentialProtectedDataDir); dest.writeString(primaryCpuAbi); dest.writeString(secondaryCpuAbi); dest.writeString(nativeLibraryDir); dest.writeString(secondaryNativeLibraryDir); dest.writeInt((handleProfiling == false) ? 0 : 1); Loading Loading @@ -190,6 +200,8 @@ public class InstrumentationInfo extends PackageItemInfo implements Parcelable { dataDir = source.readString(); deviceProtectedDataDir = source.readString(); credentialProtectedDataDir = source.readString(); primaryCpuAbi = source.readString(); secondaryCpuAbi = source.readString(); nativeLibraryDir = source.readString(); secondaryNativeLibraryDir = source.readString(); handleProfiling = source.readInt() != 0; Loading @@ -208,6 +220,8 @@ public class InstrumentationInfo extends PackageItemInfo implements Parcelable { ai.dataDir = dataDir; ai.deviceProtectedDataDir = deviceProtectedDataDir; ai.credentialProtectedDataDir = credentialProtectedDataDir; ai.primaryCpuAbi = primaryCpuAbi; ai.secondaryCpuAbi = secondaryCpuAbi; ai.nativeLibraryDir = nativeLibraryDir; ai.secondaryNativeLibraryDir = secondaryNativeLibraryDir; } Loading
services/core/java/com/android/server/pm/PackageManagerService.java +2 −0 Original line number Diff line number Diff line Loading @@ -11488,6 +11488,8 @@ public class PackageManagerService extends IPackageManager.Stub a.info.dataDir = pkg.applicationInfo.dataDir; a.info.deviceProtectedDataDir = pkg.applicationInfo.deviceProtectedDataDir; a.info.credentialProtectedDataDir = pkg.applicationInfo.credentialProtectedDataDir; a.info.primaryCpuAbi = pkg.applicationInfo.primaryCpuAbi; a.info.secondaryCpuAbi = pkg.applicationInfo.secondaryCpuAbi; a.info.nativeLibraryDir = pkg.applicationInfo.nativeLibraryDir; a.info.secondaryNativeLibraryDir = pkg.applicationInfo.secondaryNativeLibraryDir; mInstrumentation.put(a.getComponentName(), a);