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

Commit 8735c4cd authored by Kenny Root's avatar Kenny Root Committed by Android (Google) Code Review
Browse files

Merge "Get correct native library path on reinstall" into gingerbread

parents e02e41f4 bd135c19
Loading
Loading
Loading
Loading
+16 −7
Original line number Original line Diff line number Diff line
@@ -3241,8 +3241,6 @@ class PackageManagerService extends IPackageManager.Stub {
                }
                }
            }
            }


            pkg.applicationInfo.nativeLibraryDir = pkgSetting.nativeLibraryPathString;

            /*
            /*
             * Set the data dir to the default "/data/data/<package name>/lib"
             * Set the data dir to the default "/data/data/<package name>/lib"
             * if we got here without anyone telling us different (e.g., apps
             * if we got here without anyone telling us different (e.g., apps
@@ -3252,10 +3250,14 @@ class PackageManagerService extends IPackageManager.Stub {
             * This happens during an upgrade from a package settings file that
             * This happens during an upgrade from a package settings file that
             * doesn't have a native library path attribute at all.
             * doesn't have a native library path attribute at all.
             */
             */
            if (pkgSetting.nativeLibraryPathString == null && pkg.applicationInfo.dataDir != null) {
            if (pkg.applicationInfo.nativeLibraryDir == null && pkg.applicationInfo.dataDir != null) {
                if (pkgSetting.nativeLibraryPathString == null) {
                    final String nativeLibraryPath = new File(dataPath, LIB_DIR_NAME).getPath();
                    final String nativeLibraryPath = new File(dataPath, LIB_DIR_NAME).getPath();
                    pkg.applicationInfo.nativeLibraryDir = nativeLibraryPath;
                    pkg.applicationInfo.nativeLibraryDir = nativeLibraryPath;
                    pkgSetting.nativeLibraryPathString = nativeLibraryPath;
                    pkgSetting.nativeLibraryPathString = nativeLibraryPath;
                } else {
                    pkg.applicationInfo.nativeLibraryDir = pkgSetting.nativeLibraryPathString;
                }
            }
            }


            pkgSetting.uidError = uidError;
            pkgSetting.uidError = uidError;
@@ -8051,7 +8053,7 @@ class PackageManagerService extends IPackageManager.Stub {
            if (p != null) {
            if (p != null) {
                if (!p.codePath.equals(codePath)) {
                if (!p.codePath.equals(codePath)) {
                    // Check to see if its a disabled system app
                    // Check to see if its a disabled system app
                    if((p != null) && ((p.pkgFlags & ApplicationInfo.FLAG_SYSTEM) != 0)) {
                    if ((p.pkgFlags & ApplicationInfo.FLAG_SYSTEM) != 0) {
                        // This is an updated system app with versions in both system
                        // This is an updated system app with versions in both system
                        // and data partition. Just let the most recent version
                        // and data partition. Just let the most recent version
                        // take precedence.
                        // take precedence.
@@ -8062,6 +8064,13 @@ class PackageManagerService extends IPackageManager.Stub {
                        // let's log a message about it.
                        // let's log a message about it.
                        Slog.i(TAG, "Package " + name + " codePath changed from " + p.codePath
                        Slog.i(TAG, "Package " + name + " codePath changed from " + p.codePath
                                + " to " + codePath + "; Retaining data and using new");
                                + " to " + codePath + "; Retaining data and using new");
                        /*
                         * Since we've changed paths, we need to prefer the new
                         * native library path over the one stored in the
                         * package settings since we might have moved from
                         * internal to external storage or vice versa.
                         */
                        p.nativeLibraryPathString = nativeLibraryPathString;
                    }
                    }
                }
                }
                if (p.sharedUser != sharedUser) {
                if (p.sharedUser != sharedUser) {