Loading AndroidManifest.xml +2 −3 Original line number Diff line number Diff line Loading @@ -223,10 +223,9 @@ </intent-filter> </service> <service android:name="com.android.packageinstaller.role.service.RoleControllerServiceImpl" android:permission="android.permission.BIND_ROLE_CONTROLLER_SERVICE"> <service android:name="com.android.packageinstaller.role.service.RoleControllerServiceImpl"> <intent-filter android:priority="1"> <action android:name="android.rolecontrollerservice.RoleControllerService"/> <action android:name="android.app.role.RoleControllerService"/> </intent-filter> </service> Loading src/com/android/packageinstaller/role/service/RoleControllerServiceImpl.java +20 −11 Original line number Diff line number Diff line Loading @@ -17,18 +17,19 @@ package com.android.packageinstaller.role.service; import android.app.AppOpsManager; import android.app.role.RoleControllerService; import android.app.role.RoleManager; import android.app.role.RoleManagerCallback; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.PermissionInfo; import android.os.Binder; import android.os.Build; import android.os.Handler; import android.os.HandlerThread; import android.os.Process; import android.os.UserHandle; import android.rolecontrollerservice.RoleControllerService; import android.text.TextUtils; import android.util.ArrayMap; import android.util.ArraySet; Loading Loading @@ -87,6 +88,7 @@ public class RoleControllerServiceImpl extends RoleControllerService { @Override public void onGrantDefaultRoles(@NonNull RoleManagerCallback callback) { enforceCallerSystemUid("onGrantDefaultRoles"); if (callback == null) { Log.e(LOG_TAG, "callback cannot be null"); return; Loading @@ -97,6 +99,7 @@ public class RoleControllerServiceImpl extends RoleControllerService { @Override public void onAddRoleHolder(@NonNull String roleName, @NonNull String packageName, int flags, @NonNull RoleManagerCallback callback) { enforceCallerSystemUid("onAddRoleHolder"); if (callback == null) { Log.e(LOG_TAG, "callback cannot be null"); return; Loading @@ -121,6 +124,7 @@ public class RoleControllerServiceImpl extends RoleControllerService { @Override public void onRemoveRoleHolder(@NonNull String roleName, @NonNull String packageName, int flags, @NonNull RoleManagerCallback callback) { enforceCallerSystemUid("onRemoveRoleHolder"); if (callback == null) { Log.e(LOG_TAG, "callback cannot be null"); return; Loading @@ -145,6 +149,7 @@ public class RoleControllerServiceImpl extends RoleControllerService { @Override public void onClearRoleHolders(@NonNull String roleName, int flags, @NonNull RoleManagerCallback callback) { enforceCallerSystemUid("onClearRoleHolders"); if (callback == null) { Log.e(LOG_TAG, "callback cannot be null"); return; Loading @@ -162,25 +167,29 @@ public class RoleControllerServiceImpl extends RoleControllerService { } @Override public void onSmsKillSwitchToggled(boolean smsRestrictionEnabled) { public void onSmsKillSwitchToggled(boolean enabled) { enforceCallerSystemUid("onSmsKillSwitchToggled"); mWorkerHandler.post(() -> { PackageManager pm = getPackageManager(); ArrayMap<String, Role> roles = Roles.get(this); PackageManager packageManager = getPackageManager(); List<PackageInfo> installedPackages = getPackageManager().getInstalledPackages(0); for (int i = 0, size = installedPackages.size(); i < size; i++) { PackageInfo pkg = installedPackages.get(i); onSmsKillSwitchToggled(smsRestrictionEnabled, pkg, Utils.getPlatformPermissionsOfGroup( pm, android.Manifest.permission_group.SMS)); onSmsKillSwitchToggled(smsRestrictionEnabled, pkg, Utils.getPlatformPermissionsOfGroup( pm, android.Manifest.permission_group.CALL_LOG)); onSmsKillSwitchToggled(enabled, pkg, Utils.getPlatformPermissionsOfGroup( packageManager, android.Manifest.permission_group.SMS)); onSmsKillSwitchToggled(enabled, pkg, Utils.getPlatformPermissionsOfGroup( packageManager, android.Manifest.permission_group.CALL_LOG)); } grantDefaultRoles(null /* callback */); grantDefaultRoles(null); }); } private void enforceCallerSystemUid(@NonNull String methodName) { if (Binder.getCallingUid() != Process.SYSTEM_UID) { throw new SecurityException("Only the system process call " + methodName + "()"); } } void onSmsKillSwitchToggled(boolean smsRestrictionEnabled, PackageInfo pkg, List<PermissionInfo> permissions) { PackageManager pm = getPackageManager(); Loading Loading
AndroidManifest.xml +2 −3 Original line number Diff line number Diff line Loading @@ -223,10 +223,9 @@ </intent-filter> </service> <service android:name="com.android.packageinstaller.role.service.RoleControllerServiceImpl" android:permission="android.permission.BIND_ROLE_CONTROLLER_SERVICE"> <service android:name="com.android.packageinstaller.role.service.RoleControllerServiceImpl"> <intent-filter android:priority="1"> <action android:name="android.rolecontrollerservice.RoleControllerService"/> <action android:name="android.app.role.RoleControllerService"/> </intent-filter> </service> Loading
src/com/android/packageinstaller/role/service/RoleControllerServiceImpl.java +20 −11 Original line number Diff line number Diff line Loading @@ -17,18 +17,19 @@ package com.android.packageinstaller.role.service; import android.app.AppOpsManager; import android.app.role.RoleControllerService; import android.app.role.RoleManager; import android.app.role.RoleManagerCallback; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.PermissionInfo; import android.os.Binder; import android.os.Build; import android.os.Handler; import android.os.HandlerThread; import android.os.Process; import android.os.UserHandle; import android.rolecontrollerservice.RoleControllerService; import android.text.TextUtils; import android.util.ArrayMap; import android.util.ArraySet; Loading Loading @@ -87,6 +88,7 @@ public class RoleControllerServiceImpl extends RoleControllerService { @Override public void onGrantDefaultRoles(@NonNull RoleManagerCallback callback) { enforceCallerSystemUid("onGrantDefaultRoles"); if (callback == null) { Log.e(LOG_TAG, "callback cannot be null"); return; Loading @@ -97,6 +99,7 @@ public class RoleControllerServiceImpl extends RoleControllerService { @Override public void onAddRoleHolder(@NonNull String roleName, @NonNull String packageName, int flags, @NonNull RoleManagerCallback callback) { enforceCallerSystemUid("onAddRoleHolder"); if (callback == null) { Log.e(LOG_TAG, "callback cannot be null"); return; Loading @@ -121,6 +124,7 @@ public class RoleControllerServiceImpl extends RoleControllerService { @Override public void onRemoveRoleHolder(@NonNull String roleName, @NonNull String packageName, int flags, @NonNull RoleManagerCallback callback) { enforceCallerSystemUid("onRemoveRoleHolder"); if (callback == null) { Log.e(LOG_TAG, "callback cannot be null"); return; Loading @@ -145,6 +149,7 @@ public class RoleControllerServiceImpl extends RoleControllerService { @Override public void onClearRoleHolders(@NonNull String roleName, int flags, @NonNull RoleManagerCallback callback) { enforceCallerSystemUid("onClearRoleHolders"); if (callback == null) { Log.e(LOG_TAG, "callback cannot be null"); return; Loading @@ -162,25 +167,29 @@ public class RoleControllerServiceImpl extends RoleControllerService { } @Override public void onSmsKillSwitchToggled(boolean smsRestrictionEnabled) { public void onSmsKillSwitchToggled(boolean enabled) { enforceCallerSystemUid("onSmsKillSwitchToggled"); mWorkerHandler.post(() -> { PackageManager pm = getPackageManager(); ArrayMap<String, Role> roles = Roles.get(this); PackageManager packageManager = getPackageManager(); List<PackageInfo> installedPackages = getPackageManager().getInstalledPackages(0); for (int i = 0, size = installedPackages.size(); i < size; i++) { PackageInfo pkg = installedPackages.get(i); onSmsKillSwitchToggled(smsRestrictionEnabled, pkg, Utils.getPlatformPermissionsOfGroup( pm, android.Manifest.permission_group.SMS)); onSmsKillSwitchToggled(smsRestrictionEnabled, pkg, Utils.getPlatformPermissionsOfGroup( pm, android.Manifest.permission_group.CALL_LOG)); onSmsKillSwitchToggled(enabled, pkg, Utils.getPlatformPermissionsOfGroup( packageManager, android.Manifest.permission_group.SMS)); onSmsKillSwitchToggled(enabled, pkg, Utils.getPlatformPermissionsOfGroup( packageManager, android.Manifest.permission_group.CALL_LOG)); } grantDefaultRoles(null /* callback */); grantDefaultRoles(null); }); } private void enforceCallerSystemUid(@NonNull String methodName) { if (Binder.getCallingUid() != Process.SYSTEM_UID) { throw new SecurityException("Only the system process call " + methodName + "()"); } } void onSmsKillSwitchToggled(boolean smsRestrictionEnabled, PackageInfo pkg, List<PermissionInfo> permissions) { PackageManager pm = getPackageManager(); Loading