Loading api/current.txt +2 −0 Original line number Diff line number Diff line Loading @@ -6120,8 +6120,10 @@ package android.app { } public final class UiAutomation { method public void adoptShellPermissionIdentity(); method public void clearWindowAnimationFrameStats(); method public boolean clearWindowContentFrameStats(int); method public void dropShellPermissionIdentity(); method public android.view.accessibility.AccessibilityEvent executeAndWaitForEvent(java.lang.Runnable, android.app.UiAutomation.AccessibilityEventFilter, long) throws java.util.concurrent.TimeoutException; method public android.os.ParcelFileDescriptor executeShellCommand(java.lang.String); method public android.view.accessibility.AccessibilityNodeInfo findFocus(int); api/test-current.txt +2 −0 Original line number Diff line number Diff line Loading @@ -274,7 +274,9 @@ package android.content.pm { method public abstract java.lang.String getPermissionControllerPackageName(); method public abstract java.lang.String getServicesSystemSharedLibraryPackageName(); method public abstract java.lang.String getSharedSystemSharedLibraryPackageName(); method public abstract void grantRuntimePermission(java.lang.String, java.lang.String, android.os.UserHandle); method public abstract boolean isPermissionReviewModeEnabled(); method public abstract void revokeRuntimePermission(java.lang.String, java.lang.String, android.os.UserHandle); field public static final java.lang.String FEATURE_ADOPTABLE_STORAGE = "android.software.adoptable_storage"; field public static final java.lang.String FEATURE_FILE_BASED_ENCRYPTION = "android.software.file_based_encryption"; field public static final int MATCH_FACTORY_ONLY = 2097152; // 0x200000 Loading core/java/android/app/AppOpsManager.java +1 −1 Original line number Diff line number Diff line Loading @@ -2487,7 +2487,7 @@ public class AppOpsManager { */ public int noteProxyOpNoThrow(int op, String proxiedPackageName) { try { return mService.noteProxyOperation(op, mContext.getOpPackageName(), return mService.noteProxyOperation(op, Process.myUid(), mContext.getOpPackageName(), Binder.getCallingUid(), proxiedPackageName); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); Loading core/java/android/app/AppOpsManagerInternal.java +43 −0 Original line number Diff line number Diff line Loading @@ -18,12 +18,55 @@ package android.app; import android.util.SparseIntArray; import com.android.internal.util.function.QuadFunction; import com.android.internal.util.function.TriFunction; /** * App ops service local interface. * * @hide Only for use within the system server. */ public abstract class AppOpsManagerInternal { /** Interface to override app ops checks via composition */ public interface CheckOpsDelegate { /** * Allows overriding check operation behavior. * * @param code The op code to check. * @param uid The UID for which to check. * @param packageName The package for which to check. * @param superImpl The super implementation. * @return The app op check result. */ int checkOperation(int code, int uid, String packageName, TriFunction<Integer, Integer, String, Integer> superImpl); /** * Allows overriding check audio operation behavior. * * @param code The op code to check. * @param usage The audio op usage. * @param uid The UID for which to check. * @param packageName The package for which to check. * @param superImpl The super implementation. * @return The app op check result. */ int checkAudioOperation(int code, int usage, int uid, String packageName, QuadFunction<Integer, Integer, Integer, String, Integer> superImpl); /** * Allows overriding note operation behavior. * * @param code The op code to note. * @param uid The UID for which to note. * @param packageName The package for which to note. * @param superImpl The super implementation. * @return The app op note result. */ int noteOperation(int code, int uid, String packageName, TriFunction<Integer, Integer, String, Integer> superImpl); } /** * Set the currently configured device and profile owners. Specifies the package uid (value) * that has been configured for each user (key) that has one. These will be allowed privileged Loading core/java/android/app/IActivityManager.aidl +15 −0 Original line number Diff line number Diff line Loading @@ -498,4 +498,19 @@ interface IActivityManager { * user unlock progress. */ boolean startUserInBackgroundWithListener(int userid, IProgressListener unlockProgressListener); /** * Method for the shell UID to start deletating its permission identity to an * active instrumenation. The shell can delegate permissions only to one active * instrumentation at a time. An active instrumentation is one running and * started from the shell. */ void startDelegateShellPermissionIdentity(int uid); /** * Method for the shell UID to stop deletating its permission identity to an * active instrumenation. An active instrumentation is one running and * started from the shell. */ void stopDelegateShellPermissionIdentity(); } Loading
api/current.txt +2 −0 Original line number Diff line number Diff line Loading @@ -6120,8 +6120,10 @@ package android.app { } public final class UiAutomation { method public void adoptShellPermissionIdentity(); method public void clearWindowAnimationFrameStats(); method public boolean clearWindowContentFrameStats(int); method public void dropShellPermissionIdentity(); method public android.view.accessibility.AccessibilityEvent executeAndWaitForEvent(java.lang.Runnable, android.app.UiAutomation.AccessibilityEventFilter, long) throws java.util.concurrent.TimeoutException; method public android.os.ParcelFileDescriptor executeShellCommand(java.lang.String); method public android.view.accessibility.AccessibilityNodeInfo findFocus(int);
api/test-current.txt +2 −0 Original line number Diff line number Diff line Loading @@ -274,7 +274,9 @@ package android.content.pm { method public abstract java.lang.String getPermissionControllerPackageName(); method public abstract java.lang.String getServicesSystemSharedLibraryPackageName(); method public abstract java.lang.String getSharedSystemSharedLibraryPackageName(); method public abstract void grantRuntimePermission(java.lang.String, java.lang.String, android.os.UserHandle); method public abstract boolean isPermissionReviewModeEnabled(); method public abstract void revokeRuntimePermission(java.lang.String, java.lang.String, android.os.UserHandle); field public static final java.lang.String FEATURE_ADOPTABLE_STORAGE = "android.software.adoptable_storage"; field public static final java.lang.String FEATURE_FILE_BASED_ENCRYPTION = "android.software.file_based_encryption"; field public static final int MATCH_FACTORY_ONLY = 2097152; // 0x200000 Loading
core/java/android/app/AppOpsManager.java +1 −1 Original line number Diff line number Diff line Loading @@ -2487,7 +2487,7 @@ public class AppOpsManager { */ public int noteProxyOpNoThrow(int op, String proxiedPackageName) { try { return mService.noteProxyOperation(op, mContext.getOpPackageName(), return mService.noteProxyOperation(op, Process.myUid(), mContext.getOpPackageName(), Binder.getCallingUid(), proxiedPackageName); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); Loading
core/java/android/app/AppOpsManagerInternal.java +43 −0 Original line number Diff line number Diff line Loading @@ -18,12 +18,55 @@ package android.app; import android.util.SparseIntArray; import com.android.internal.util.function.QuadFunction; import com.android.internal.util.function.TriFunction; /** * App ops service local interface. * * @hide Only for use within the system server. */ public abstract class AppOpsManagerInternal { /** Interface to override app ops checks via composition */ public interface CheckOpsDelegate { /** * Allows overriding check operation behavior. * * @param code The op code to check. * @param uid The UID for which to check. * @param packageName The package for which to check. * @param superImpl The super implementation. * @return The app op check result. */ int checkOperation(int code, int uid, String packageName, TriFunction<Integer, Integer, String, Integer> superImpl); /** * Allows overriding check audio operation behavior. * * @param code The op code to check. * @param usage The audio op usage. * @param uid The UID for which to check. * @param packageName The package for which to check. * @param superImpl The super implementation. * @return The app op check result. */ int checkAudioOperation(int code, int usage, int uid, String packageName, QuadFunction<Integer, Integer, Integer, String, Integer> superImpl); /** * Allows overriding note operation behavior. * * @param code The op code to note. * @param uid The UID for which to note. * @param packageName The package for which to note. * @param superImpl The super implementation. * @return The app op note result. */ int noteOperation(int code, int uid, String packageName, TriFunction<Integer, Integer, String, Integer> superImpl); } /** * Set the currently configured device and profile owners. Specifies the package uid (value) * that has been configured for each user (key) that has one. These will be allowed privileged Loading
core/java/android/app/IActivityManager.aidl +15 −0 Original line number Diff line number Diff line Loading @@ -498,4 +498,19 @@ interface IActivityManager { * user unlock progress. */ boolean startUserInBackgroundWithListener(int userid, IProgressListener unlockProgressListener); /** * Method for the shell UID to start deletating its permission identity to an * active instrumenation. The shell can delegate permissions only to one active * instrumentation at a time. An active instrumentation is one running and * started from the shell. */ void startDelegateShellPermissionIdentity(int uid); /** * Method for the shell UID to stop deletating its permission identity to an * active instrumenation. An active instrumentation is one running and * started from the shell. */ void stopDelegateShellPermissionIdentity(); }