Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 096e0587 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Checks that secondary instrumentation ABI matches" into pi-dev

parents 2331a148 eb59580a
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -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 =
@@ -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;
+14 −0
Original line number Diff line number Diff line
@@ -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;

@@ -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;
@@ -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);
@@ -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;
@@ -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;
    }
+2 −0
Original line number Diff line number Diff line
@@ -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);