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

Commit 00eabe64 authored by Joanne Chung's avatar Joanne Chung
Browse files

Reland do not give app id for sdk-library package

Move check logic to help readibility and add flag to protect the
change.

Bug: 295843617
Test: manual. Install success and no app id is assigned and no
no directory created under /data/data for sdk pacakge
Test: atest PackageManagerShellCommandInstallTest
Test: atest SdkSandboxManagerServiceUnitTest(see bug comment)
Test: atest SdkSandboxManagerTest(see bug comment)

Change-Id: Ic397d93331a9dc5c44abf6fa15028f6e3d1ea74e
parent 390c749b
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.server.pm;

import static android.content.pm.Flags.preventSdkLibApp;
import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DEFAULT;
import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DISABLED;
import static android.content.pm.PackageManager.INSTALL_FAILED_ALREADY_EXISTS;
@@ -994,10 +995,11 @@ final class InstallPackageHelper {
                        return;
                    }
                    final boolean isApex = (request.getScanFlags() & SCAN_AS_APEX) != 0;
                    if (!isApex) {
                        createdAppId.put(packageName, optimisticallyRegisterAppId(request));
                    } else {
                    final boolean isSdkLibrary = packageToScan.isSdkLibrary();
                    if (isApex || (isSdkLibrary && preventSdkLibApp())) {
                        request.getScannedPackageSetting().setAppId(Process.INVALID_UID);
                    } else {
                        createdAppId.put(packageName, optimisticallyRegisterAppId(request));
                    }
                    versionInfos.put(packageName,
                            mPm.getSettingsVersionForPackage(packageToScan));