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

Commit 6c974408 authored by Kris Giesing's avatar Kris Giesing
Browse files

DO NOT MERGE Revert "Load libraries directly from apk"

This reverts commit dec4688f.

Change-Id: Ief869dec1641d5a376bc044719941536e0bf8442
parent e863712a
Loading
Loading
Loading
Loading
+2 −4
Original line number Diff line number Diff line
@@ -547,7 +547,6 @@ package android {
    field public static final int expandableListViewWhiteStyle = 16843446; // 0x10102b6
    field public static final int exported = 16842768; // 0x1010010
    field public static final int extraTension = 16843371; // 0x101026b
    field public static final int extractNativeLibs = 16843990; // 0x10104d6
    field public static final int factor = 16843219; // 0x10101d3
    field public static final int fadeDuration = 16843384; // 0x1010278
    field public static final int fadeEnabled = 16843390; // 0x101027e
@@ -8367,7 +8366,6 @@ package android.content.pm {
    field public static final int FLAG_ALLOW_TASK_REPARENTING = 32; // 0x20
    field public static final int FLAG_DEBUGGABLE = 2; // 0x2
    field public static final int FLAG_EXTERNAL_STORAGE = 262144; // 0x40000
    field public static final int FLAG_EXTRACT_NATIVE_LIBS = 268435456; // 0x10000000
    field public static final int FLAG_FACTORY_TEST = 16; // 0x10
    field public static final int FLAG_FULL_BACKUP_ONLY = 67108864; // 0x4000000
    field public static final int FLAG_HAS_CODE = 4; // 0x4
@@ -17515,7 +17513,7 @@ package android.net.http {
    method public static android.net.http.HttpResponseCache getInstalled();
    method public int getNetworkCount();
    method public int getRequestCount();
    method public static synchronized android.net.http.HttpResponseCache install(java.io.File, long) throws java.io.IOException;
    method public static android.net.http.HttpResponseCache install(java.io.File, long) throws java.io.IOException;
    method public long maxSize();
    method public java.net.CacheRequest put(java.net.URI, java.net.URLConnection) throws java.io.IOException;
    method public long size();
@@ -41519,7 +41517,7 @@ package java.lang {
    method public static double nextUp(double);
    method public static float nextUp(float);
    method public static double pow(double, double);
    method public static double random();
    method public static synchronized double random();
    method public static double rint(double);
    method public static long round(double);
    method public static int round(float);
+2 −4
Original line number Diff line number Diff line
@@ -617,7 +617,6 @@ package android {
    field public static final int expandableListViewWhiteStyle = 16843446; // 0x10102b6
    field public static final int exported = 16842768; // 0x1010010
    field public static final int extraTension = 16843371; // 0x101026b
    field public static final int extractNativeLibs = 16843990; // 0x10104d6
    field public static final int factor = 16843219; // 0x10101d3
    field public static final int fadeDuration = 16843384; // 0x1010278
    field public static final int fadeEnabled = 16843390; // 0x101027e
@@ -8615,7 +8614,6 @@ package android.content.pm {
    field public static final int FLAG_ALLOW_TASK_REPARENTING = 32; // 0x20
    field public static final int FLAG_DEBUGGABLE = 2; // 0x2
    field public static final int FLAG_EXTERNAL_STORAGE = 262144; // 0x40000
    field public static final int FLAG_EXTRACT_NATIVE_LIBS = 268435456; // 0x10000000
    field public static final int FLAG_FACTORY_TEST = 16; // 0x10
    field public static final int FLAG_FULL_BACKUP_ONLY = 67108864; // 0x4000000
    field public static final int FLAG_HAS_CODE = 4; // 0x4
@@ -18843,7 +18841,7 @@ package android.net.http {
    method public static android.net.http.HttpResponseCache getInstalled();
    method public int getNetworkCount();
    method public int getRequestCount();
    method public static synchronized android.net.http.HttpResponseCache install(java.io.File, long) throws java.io.IOException;
    method public static android.net.http.HttpResponseCache install(java.io.File, long) throws java.io.IOException;
    method public long maxSize();
    method public java.net.CacheRequest put(java.net.URI, java.net.URLConnection) throws java.io.IOException;
    method public long size();
@@ -44057,7 +44055,7 @@ package java.lang {
    method public static double nextUp(double);
    method public static float nextUp(float);
    method public static double pow(double, double);
    method public static double random();
    method public static synchronized double random();
    method public static double rint(double);
    method public static long round(double);
    method public static int round(float);
+0 −5
Original line number Diff line number Diff line
@@ -345,11 +345,6 @@ public class ApplicationInfo extends PackageItemInfo implements Parcelable {
     */
    public static final int FLAG_USES_CLEARTEXT_TRAFFIC = 1<<27;

    /**
     * When set installer extracts native libs from .apk files.
     */
    public static final int FLAG_EXTRACT_NATIVE_LIBS = 1<<28;

    /**
     * Value for {@link #flags}: true if code from this application will need to be
     * loaded into other applications' processes. On devices that support multiple
+3 −18
Original line number Diff line number Diff line
@@ -268,7 +268,6 @@ public class PackageParser {

        public final boolean coreApp;
        public final boolean multiArch;
        public final boolean extractNativeLibs;

        public PackageLite(String codePath, ApkLite baseApk, String[] splitNames,
                String[] splitCodePaths, int[] splitRevisionCodes) {
@@ -284,7 +283,6 @@ public class PackageParser {
            this.splitRevisionCodes = splitRevisionCodes;
            this.coreApp = baseApk.coreApp;
            this.multiArch = baseApk.multiArch;
            this.extractNativeLibs = baseApk.extractNativeLibs;
        }

        public List<String> getAllCodePaths() {
@@ -311,12 +309,10 @@ public class PackageParser {
        public final Signature[] signatures;
        public final boolean coreApp;
        public final boolean multiArch;
        public final boolean extractNativeLibs;

        public ApkLite(String codePath, String packageName, String splitName, int versionCode,
                int revisionCode, int installLocation, List<VerifierInfo> verifiers,
                Signature[] signatures, boolean coreApp, boolean multiArch,
                boolean extractNativeLibs) {
                Signature[] signatures, boolean coreApp, boolean multiArch) {
            this.codePath = codePath;
            this.packageName = packageName;
            this.splitName = splitName;
@@ -327,7 +323,6 @@ public class PackageParser {
            this.signatures = signatures;
            this.coreApp = coreApp;
            this.multiArch = multiArch;
            this.extractNativeLibs = extractNativeLibs;
        }
    }

@@ -1274,7 +1269,6 @@ public class PackageParser {
        int revisionCode = 0;
        boolean coreApp = false;
        boolean multiArch = false;
        boolean extractNativeLibs = true;

        for (int i = 0; i < attrs.getAttributeCount(); i++) {
            final String attr = attrs.getAttributeName(i);
@@ -1313,17 +1307,14 @@ public class PackageParser {
                    final String attr = attrs.getAttributeName(i);
                    if ("multiArch".equals(attr)) {
                        multiArch = attrs.getAttributeBooleanValue(i, false);
                    }
                    if ("extractNativeLibs".equals(attr)) {
                        extractNativeLibs = attrs.getAttributeBooleanValue(i, true);
                        break;
                    }
                }
            }
        }

        return new ApkLite(codePath, packageSplit.first, packageSplit.second, versionCode,
                revisionCode, installLocation, verifiers, signatures, coreApp, multiArch,
                extractNativeLibs);
                revisionCode, installLocation, verifiers, signatures, coreApp, multiArch);
    }

    /**
@@ -2576,12 +2567,6 @@ public class PackageParser {
            ai.flags |= ApplicationInfo.FLAG_MULTIARCH;
        }

        if (sa.getBoolean(
                com.android.internal.R.styleable.AndroidManifestApplication_extractNativeLibs,
                true)) {
            ai.flags |= ApplicationInfo.FLAG_EXTRACT_NATIVE_LIBS;
        }

        String str;
        str = sa.getNonConfigurationString(
                com.android.internal.R.styleable.AndroidManifestApplication_permission, 0);
+10 −21
Original line number Diff line number Diff line
@@ -33,7 +33,6 @@ import android.content.pm.PackageParser.PackageLite;
import android.content.pm.PackageParser.PackageParserException;
import android.os.Build;
import android.os.SELinux;
import android.os.SystemProperties;
import android.system.ErrnoException;
import android.system.Os;
import android.util.Slog;
@@ -75,7 +74,6 @@ public class NativeLibraryHelper {

        final long[] apkHandles;
        final boolean multiArch;
        final boolean extractNativeLibs;

        public static Handle create(File packageFile) throws IOException {
            try {
@@ -88,16 +86,14 @@ public class NativeLibraryHelper {

        public static Handle create(Package pkg) throws IOException {
            return create(pkg.getAllCodePaths(),
                    (pkg.applicationInfo.flags & ApplicationInfo.FLAG_MULTIARCH) != 0,
                    (pkg.applicationInfo.flags & ApplicationInfo.FLAG_EXTRACT_NATIVE_LIBS) != 0);
                    (pkg.applicationInfo.flags & ApplicationInfo.FLAG_MULTIARCH) != 0);
        }

        public static Handle create(PackageLite lite) throws IOException {
            return create(lite.getAllCodePaths(), lite.multiArch, lite.extractNativeLibs);
            return create(lite.getAllCodePaths(), lite.multiArch);
        }

        private static Handle create(List<String> codePaths, boolean multiArch,
                boolean extractNativeLibs) throws IOException {
        private static Handle create(List<String> codePaths, boolean multiArch) throws IOException {
            final int size = codePaths.size();
            final long[] apkHandles = new long[size];
            for (int i = 0; i < size; i++) {
@@ -112,13 +108,12 @@ public class NativeLibraryHelper {
                }
            }

            return new Handle(apkHandles, multiArch, extractNativeLibs);
            return new Handle(apkHandles, multiArch);
        }

        Handle(long[] apkHandles, boolean multiArch, boolean extractNativeLibs) {
        Handle(long[] apkHandles, boolean multiArch) {
            this.apkHandles = apkHandles;
            this.multiArch = multiArch;
            this.extractNativeLibs = extractNativeLibs;
            mGuard.open("close");
        }

@@ -151,8 +146,8 @@ public class NativeLibraryHelper {

    private static native long nativeSumNativeBinaries(long handle, String cpuAbi);

    private native static int nativeCopyNativeBinaries(long handle, String sharedLibraryPath,
            String abiToCopy, boolean extractNativeLibs, boolean hasNativeBridge);
    private native static int nativeCopyNativeBinaries(long handle,
            String sharedLibraryPath, String abiToCopy);

    private static long sumNativeBinaries(Handle handle, String abi) {
        long sum = 0;
@@ -172,8 +167,7 @@ public class NativeLibraryHelper {
     */
    public static int copyNativeBinaries(Handle handle, File sharedLibraryDir, String abi) {
        for (long apkHandle : handle.apkHandles) {
            int res = nativeCopyNativeBinaries(apkHandle, sharedLibraryDir.getPath(), abi,
                    handle.extractNativeLibs, HAS_NATIVE_BRIDGE);
            int res = nativeCopyNativeBinaries(apkHandle, sharedLibraryDir.getPath(), abi);
            if (res != INSTALL_SUCCEEDED) {
                return res;
            }
@@ -224,8 +218,7 @@ public class NativeLibraryHelper {
    /**
     * Remove the native binaries of a given package. This deletes the files
     */
    public static void removeNativeBinariesFromDirLI(File nativeLibraryRoot,
            boolean deleteRootDir) {
    public static void removeNativeBinariesFromDirLI(File nativeLibraryRoot, boolean deleteRootDir) {
        if (DEBUG_NATIVE) {
            Slog.w(TAG, "Deleting native binaries from: " + nativeLibraryRoot.getPath());
        }
@@ -254,8 +247,7 @@ public class NativeLibraryHelper {
            // asked to or this will prevent installation of future updates.
            if (deleteRootDir) {
                if (!nativeLibraryRoot.delete()) {
                    Slog.w(TAG, "Could not delete native binary directory: " +
                            nativeLibraryRoot.getPath());
                    Slog.w(TAG, "Could not delete native binary directory: " + nativeLibraryRoot.getPath());
                }
            }
        }
@@ -424,9 +416,6 @@ public class NativeLibraryHelper {
    // We don't care about the other return values for now.
    private static final int BITCODE_PRESENT = 1;

    private static final boolean HAS_NATIVE_BRIDGE =
            !"0".equals(SystemProperties.get("ro.dalvik.vm.native.bridge", "0"));

    private static native int hasRenderscriptBitcode(long apkHandle);

    public static boolean hasRenderscriptBitcode(Handle handle) throws IOException {
Loading