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

Commit 1ad238f9 authored by Hai Zhang's avatar Hai Zhang
Browse files

Add getDeclaredShareLibraries() for role qualification checking.

Bug: 124452117
Test: build
Change-Id: I13e4313c4ab5305335fc9490dfc58b03a24a86dd
parent fbc4c76b
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -12,6 +12,7 @@ package android {
    field public static final String ACCESS_MTP = "android.permission.ACCESS_MTP";
    field public static final String ACCESS_NETWORK_CONDITIONS = "android.permission.ACCESS_NETWORK_CONDITIONS";
    field public static final String ACCESS_NOTIFICATIONS = "android.permission.ACCESS_NOTIFICATIONS";
    field public static final String ACCESS_SHARED_LIBRARIES = "android.permission.ACCESS_SHARED_LIBRARIES";
    field public static final String ACCESS_SHORTCUTS = "android.permission.ACCESS_SHORTCUTS";
    field public static final String ACCESS_SURFACE_FLINGER = "android.permission.ACCESS_SURFACE_FLINGER";
    field public static final String ACTIVITY_EMBEDDING = "android.permission.ACTIVITY_EMBEDDING";
@@ -1606,6 +1607,7 @@ package android.content.pm {
    method public abstract java.util.List<android.content.IntentFilter> getAllIntentFilters(String);
    method @NonNull @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS) public android.content.pm.ApplicationInfo getApplicationInfoAsUser(@NonNull String, int, @NonNull android.os.UserHandle) throws android.content.pm.PackageManager.NameNotFoundException;
    method @NonNull public android.content.pm.dex.ArtManager getArtManager();
    method @NonNull @RequiresPermission(android.Manifest.permission.ACCESS_SHARED_LIBRARIES) public java.util.List<android.content.pm.SharedLibraryInfo> getDeclaredSharedLibraries(@NonNull String, int);
    method @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL) public abstract String getDefaultBrowserPackageNameAsUser(int);
    method @Nullable @RequiresPermission(android.Manifest.permission.SET_HARMFUL_APP_WARNINGS) public CharSequence getHarmfulAppWarning(@NonNull String);
    method public String getIncidentReportApproverPackageName();
+13 −0
Original line number Diff line number Diff line
@@ -536,6 +536,19 @@ public class ApplicationPackageManager extends PackageManager {
        }
    }

    @NonNull
    @Override
    public List<SharedLibraryInfo> getDeclaredSharedLibraries(@NonNull String packageName,
            @InstallFlags int flags) {
        try {
            ParceledListSlice<SharedLibraryInfo> sharedLibraries = mPM.getDeclaredSharedLibraries(
                    packageName, flags, mContext.getUserId());
            return sharedLibraries != null ? sharedLibraries.getList() : Collections.emptyList();
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
    }

    /** @hide */
    @Override
    public @NonNull String getServicesSystemSharedLibraryPackageName() {
+2 −0
Original line number Diff line number Diff line
@@ -714,6 +714,8 @@ interface IPackageManager {

    ParceledListSlice getSharedLibraries(in String packageName, int flags, int userId);

    ParceledListSlice getDeclaredSharedLibraries(in String packageName, int flags, int userId);

    boolean canRequestPackageInstalls(String packageName, int userId);

    void deletePreloadsFileCache();
+18 −0
Original line number Diff line number Diff line
@@ -4236,6 +4236,24 @@ public abstract class PackageManager {
    public abstract @NonNull List<SharedLibraryInfo> getSharedLibrariesAsUser(
            @InstallFlags int flags, @UserIdInt int userId);

    /**
     * Get the list of shared libraries declared by a package.
     *
     * @param packageName the package name to query
     * @param flags the flags to filter packages
     * @return the shared library list
     *
     * @hide
     */
    @NonNull
    @RequiresPermission(Manifest.permission.ACCESS_SHARED_LIBRARIES)
    @SystemApi
    public List<SharedLibraryInfo> getDeclaredSharedLibraries(@NonNull String packageName,
            @InstallFlags int flags) {
        throw new UnsupportedOperationException(
                "getDeclaredSharedLibraries() not implemented in subclass");
    }

    /**
     * Get the name of the package hosting the services shared library.
     *
+5 −0
Original line number Diff line number Diff line
@@ -4482,6 +4482,11 @@
    <permission android:name="android.permission.SUBSTITUTE_SHARE_TARGET_APP_NAME_AND_ICON"
                android:protectionLevel="signature|privileged" />

    <!-- @SystemApi Allows an application to access shared libraries.
         @hide -->
    <permission android:name="android.permission.ACCESS_SHARED_LIBRARIES"
                android:protectionLevel="signature|installer" />

    <application android:process="system"
                 android:persistent="true"
                 android:hasCode="false"
Loading