diff options
5 files changed, 22 insertions, 37 deletions
diff --git a/core/java/android/app/AppOpsManager.java b/core/java/android/app/AppOpsManager.java index fc89e1395073..d932a29beca6 100644 --- a/core/java/android/app/AppOpsManager.java +++ b/core/java/android/app/AppOpsManager.java @@ -2463,8 +2463,8 @@ public class AppOpsManager {       * restriction} for a certain app-op.       */      private static RestrictionBypass[] sOpAllowSystemRestrictionBypass = new RestrictionBypass[] { -            new RestrictionBypass(true, false, false), //COARSE_LOCATION -            new RestrictionBypass(true, false, false), //FINE_LOCATION +            new RestrictionBypass(true, false), //COARSE_LOCATION +            new RestrictionBypass(true, false), //FINE_LOCATION              null, //GPS              null, //VIBRATE              null, //READ_CONTACTS @@ -2473,7 +2473,7 @@ public class AppOpsManager {              null, //WRITE_CALL_LOG              null, //READ_CALENDAR              null, //WRITE_CALENDAR -            new RestrictionBypass(false, true, false), //WIFI_SCAN +            new RestrictionBypass(true, false), //WIFI_SCAN              null, //POST_NOTIFICATION              null, //NEIGHBORING_CELLS              null, //CALL_PHONE @@ -2487,10 +2487,10 @@ public class AppOpsManager {              null, //READ_ICC_SMS              null, //WRITE_ICC_SMS              null, //WRITE_SETTINGS -            new RestrictionBypass(false, true, false), //SYSTEM_ALERT_WINDOW +            new RestrictionBypass(true, false), //SYSTEM_ALERT_WINDOW              null, //ACCESS_NOTIFICATIONS              null, //CAMERA -            new RestrictionBypass(false, false, true), //RECORD_AUDIO +            new RestrictionBypass(false, true), //RECORD_AUDIO              null, //PLAY_AUDIO              null, //READ_CLIPBOARD              null, //WRITE_CLIPBOARD @@ -2508,7 +2508,7 @@ public class AppOpsManager {              null, //MONITOR_HIGH_POWER_LOCATION              null, //GET_USAGE_STATS              null, //MUTE_MICROPHONE -            new RestrictionBypass(false, true, false), //TOAST_WINDOW +            new RestrictionBypass(true, false), //TOAST_WINDOW              null, //PROJECT_MEDIA              null, //ACTIVATE_VPN              null, //WALLPAPER @@ -2540,7 +2540,7 @@ public class AppOpsManager {              null, // ACCEPT_HANDOVER              null, // MANAGE_IPSEC_HANDOVERS              null, // START_FOREGROUND -            new RestrictionBypass(false, true, false), // BLUETOOTH_SCAN +            new RestrictionBypass(true, false), // BLUETOOTH_SCAN              null, // USE_BIOMETRIC              null, // ACTIVITY_RECOGNITION              null, // SMS_FINANCIAL_TRANSACTIONS @@ -3105,9 +3105,6 @@ public class AppOpsManager {       * @hide       */      public static class RestrictionBypass { -        /** Does the app need to be system uid to bypass the restriction */ -        public boolean isSystemUid; -          /** Does the app need to be privileged to bypass the restriction */          public boolean isPrivileged; @@ -3117,14 +3114,12 @@ public class AppOpsManager {           */          public boolean isRecordAudioRestrictionExcept; -        public RestrictionBypass(boolean isSystemUid, boolean isPrivileged, -                boolean isRecordAudioRestrictionExcept) { -            this.isSystemUid = isSystemUid; +        public RestrictionBypass(boolean isPrivileged, boolean isRecordAudioRestrictionExcept) {              this.isPrivileged = isPrivileged;              this.isRecordAudioRestrictionExcept = isRecordAudioRestrictionExcept;          } -        public static RestrictionBypass UNRESTRICTED = new RestrictionBypass(false, true, true); +        public static RestrictionBypass UNRESTRICTED = new RestrictionBypass(true, true);      }      /** diff --git a/packages/PackageInstaller/res/values-eu/strings.xml b/packages/PackageInstaller/res/values-eu/strings.xml index c1b73fc23428..4af62518c819 100644 --- a/packages/PackageInstaller/res/values-eu/strings.xml +++ b/packages/PackageInstaller/res/values-eu/strings.xml @@ -84,8 +84,8 @@      <string name="untrusted_external_source_warning" product="tv" msgid="7057271609532508035">"Segurtasuna bermatzeko, ezin dira instalatu iturburu honetako aplikazio ezezagunak telebista honetan. Hori aldatzeko, joan Ezarpenak atalera."</string>      <string name="untrusted_external_source_warning" product="default" msgid="8444191224459138919">"Segurtasuna bermatzeko, ezin dira instalatu iturburu honetako aplikazio ezezagunak telefono honetan. Hori aldatzeko, joan Ezarpenak atalera."</string>      <string name="anonymous_source_warning" product="default" msgid="2784902545920822500">"Baliteke telefonoak eta datu pertsonalek aplikazio ezezagunen erasoak jasatea. Aplikazio hau instalatzen baduzu, onartu egingo duzu zeu zarela hura erabiltzeagatik telefonoari agian gertatuko zaizkion kalteen edo datu-galeren erantzulea."</string> -    <string name="anonymous_source_warning" product="tablet" msgid="3939101621438855516">"Tabletak eta datu pertsonalek aplikazio ezezagunen erasoak jaso ditzakete. Aplikazio hau instalatzen baduzu, onartu egingo duzu zeu zarela hura erabiltzeagatik tabletak jasan ditzakeen kalteen edo datu-galeren erantzulea."</string> -    <string name="anonymous_source_warning" product="tv" msgid="5599483539528168566">"Telebistak eta datu pertsonalek aplikazio ezezagunen erasoak jaso ditzakete. Aplikazio hau instalatzen baduzu, onartu egingo duzu zeu zarela hura erabiltzeagatik telebistak jasan ditzakeen kalteen edo datu-galeren erantzulea."</string> +    <string name="anonymous_source_warning" product="tablet" msgid="3939101621438855516">"Baliteke tabletak eta datu pertsonalek aplikazio ezezagunen erasoak jasatea. Aplikazio hau instalatzen baduzu, onartu egingo duzu hura erabiltzeagatik tabletari agian gertatuko zaizkion kalteen edo datu-galeren erantzulea zeu izango zarela."</string> +    <string name="anonymous_source_warning" product="tv" msgid="5599483539528168566">"Baliteke telebistak eta datu pertsonalek aplikazio ezezagunen erasoak jasatea. Aplikazio hau instalatzen baduzu, onartu egingo duzu hura erabiltzeagatik telebistari agian gertatuko zaizkion kalteen edo datu-galeren erantzulea zeu izango zarela."</string>      <string name="anonymous_source_continue" msgid="4375745439457209366">"Egin aurrera"</string>      <string name="external_sources_settings" msgid="4046964413071713807">"Ezarpenak"</string>      <string name="wear_app_channel" msgid="1960809674709107850">"Wear aplikazioak instalatzea/desinstalatzea"</string> diff --git a/packages/PackageInstaller/res/values-or/strings.xml b/packages/PackageInstaller/res/values-or/strings.xml index 12e61d10452e..4f24118a56ff 100644 --- a/packages/PackageInstaller/res/values-or/strings.xml +++ b/packages/PackageInstaller/res/values-or/strings.xml @@ -20,7 +20,7 @@      <string name="install" msgid="711829760615509273">"ଇନଷ୍ଟଲ୍ କରନ୍ତୁ"</string>      <string name="update" msgid="3932142540719227615">"ଅପଡେଟ୍ କରନ୍ତୁ"</string>      <string name="done" msgid="6632441120016885253">"ହୋଇଗଲା"</string> -    <string name="cancel" msgid="1018267193425558088">"ବାତିଲ୍ କରନ୍ତୁ"</string> +    <string name="cancel" msgid="1018267193425558088">"ବାତିଲ କରନ୍ତୁ"</string>      <string name="installing" msgid="4921993079741206516">"ଇନଷ୍ଟଲ୍ କରାଯାଉଛି…"</string>      <string name="installing_app" msgid="1165095864863849422">"<xliff:g id="PACKAGE_LABEL">%1$s</xliff:g> ଇନଷ୍ଟଲ୍ କରାଯାଉଛି…"</string>      <string name="install_done" msgid="5987363587661783896">"ଆପ ଇନଷ୍ଟଲ ହୋଇଗଲା।"</string> diff --git a/packages/PrintSpooler/res/values-or/strings.xml b/packages/PrintSpooler/res/values-or/strings.xml index fa10909b92ed..6f215d3af18b 100644 --- a/packages/PrintSpooler/res/values-or/strings.xml +++ b/packages/PrintSpooler/res/values-or/strings.xml @@ -83,7 +83,7 @@      <string name="cancelling_notification_title_template" msgid="1821759594704703197">"<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g> ବାତିଲ୍ କରାଯାଉଛି"</string>      <string name="failed_notification_title_template" msgid="2256217208186530973">"<xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g> ପ୍ରିଣ୍ଟର୍ ତ୍ରୁଟି"</string>      <string name="blocked_notification_title_template" msgid="1175435827331588646">"ପ୍ରିଣ୍ଟର୍ ଦ୍ୱାରା ରୋକାଯାଇଥିବା <xliff:g id="PRINT_JOB_NAME">%1$s</xliff:g>"</string> -    <string name="cancel" msgid="4373674107267141885">"ବାତିଲ୍ କରନ୍ତୁ"</string> +    <string name="cancel" msgid="4373674107267141885">"ବାତିଲ କରନ୍ତୁ"</string>      <string name="restart" msgid="2472034227037808749">"ରିଷ୍ଟାର୍ଟ କରନ୍ତୁ"</string>      <string name="no_connection_to_printer" msgid="2159246915977282728">"ପ୍ରିଣ୍ଟର୍କୁ କୌଣସି ସଂଯୋଗ ନାହିଁ"</string>      <string name="reason_unknown" msgid="5507940196503246139">"ଅଜଣା"</string> diff --git a/services/core/java/com/android/server/appop/AppOpsService.java b/services/core/java/com/android/server/appop/AppOpsService.java index 3808e0c93a38..6d29c379d1b1 100644 --- a/services/core/java/com/android/server/appop/AppOpsService.java +++ b/services/core/java/com/android/server/appop/AppOpsService.java @@ -3242,7 +3242,7 @@ public class AppOpsService extends IAppOpsService.Stub {              return AppOpsManager.MODE_IGNORED;          }          synchronized (this) { -            if (isOpRestrictedLocked(uid, code, packageName, attributionTag, pvr.bypass, true)) { +            if (isOpRestrictedLocked(uid, code, packageName, attributionTag, pvr.bypass)) {                  return AppOpsManager.MODE_IGNORED;              }              code = AppOpsManager.opToSwitch(code); @@ -3459,7 +3459,7 @@ public class AppOpsService extends IAppOpsService.Stub {              final int switchCode = AppOpsManager.opToSwitch(code);              final UidState uidState = ops.uidState; -            if (isOpRestrictedLocked(uid, code, packageName, attributionTag, pvr.bypass, false)) { +            if (isOpRestrictedLocked(uid, code, packageName, attributionTag, pvr.bypass)) {                  attributedOp.rejected(uidState.state, flags);                  scheduleOpNotedIfNeededLocked(code, uid, packageName, attributionTag, flags,                          AppOpsManager.MODE_IGNORED); @@ -3973,8 +3973,7 @@ public class AppOpsService extends IAppOpsService.Stub {              final Op op = getOpLocked(ops, code, uid, true);              final AttributedOp attributedOp = op.getOrCreateAttribution(op, attributionTag);              final UidState uidState = ops.uidState; -            isRestricted = isOpRestrictedLocked(uid, code, packageName, attributionTag, pvr.bypass, -                    false); +            isRestricted = isOpRestrictedLocked(uid, code, packageName, attributionTag, pvr.bypass);              final int switchCode = AppOpsManager.opToSwitch(code);              // If there is a non-default per UID policy (we set UID op mode only if              // non-default) it takes over, otherwise use the per package policy. @@ -4503,9 +4502,8 @@ public class AppOpsService extends IAppOpsService.Stub {       * @return The restriction matching the package       */      private RestrictionBypass getBypassforPackage(@NonNull AndroidPackage pkg) { -        return new RestrictionBypass(pkg.getUid() == Process.SYSTEM_UID, pkg.isPrivileged(), -                mContext.checkPermission(android.Manifest.permission -                        .EXEMPT_FROM_AUDIO_RECORD_RESTRICTIONS, -1, pkg.getUid()) +        return new RestrictionBypass(pkg.isPrivileged(), mContext.checkPermission( +                android.Manifest.permission.EXEMPT_FROM_AUDIO_RECORD_RESTRICTIONS, -1, pkg.getUid())                  == PackageManager.PERMISSION_GRANTED);      } @@ -4765,7 +4763,7 @@ public class AppOpsService extends IAppOpsService.Stub {      }      private boolean isOpRestrictedLocked(int uid, int code, String packageName, -            String attributionTag, @Nullable RestrictionBypass appBypass, boolean isCheckOp) { +            String attributionTag, @Nullable RestrictionBypass appBypass) {          int restrictionSetCount = mOpGlobalRestrictions.size();          for (int i = 0; i < restrictionSetCount; i++) { @@ -4782,15 +4780,11 @@ public class AppOpsService extends IAppOpsService.Stub {              // For each client, check that the given op is not restricted, or that the given              // package is exempt from the restriction.              ClientUserRestrictionState restrictionState = mOpUserRestrictions.valueAt(i); -            if (restrictionState.hasRestriction(code, packageName, attributionTag, userHandle, -                    isCheckOp)) { +            if (restrictionState.hasRestriction(code, packageName, attributionTag, userHandle)) {                  RestrictionBypass opBypass = opAllowSystemBypassRestriction(code);                  if (opBypass != null) {                      // If we are the system, bypass user restrictions for certain codes                      synchronized (this) { -                        if (opBypass.isSystemUid && appBypass != null && appBypass.isSystemUid) { -                            return false; -                        }                          if (opBypass.isPrivileged && appBypass != null && appBypass.isPrivileged) {                              return false;                          } @@ -7143,7 +7137,7 @@ public class AppOpsService extends IAppOpsService.Stub {          }          public boolean hasRestriction(int restriction, String packageName, String attributionTag, -                int userId, boolean isCheckOp) { +                int userId) {              if (perUserRestrictions == null) {                  return false;              } @@ -7162,9 +7156,6 @@ public class AppOpsService extends IAppOpsService.Stub {                  return true;              } -            if (isCheckOp) { -                return !perUserExclusions.includes(packageName); -            }              return !perUserExclusions.contains(packageName, attributionTag);          } @@ -7331,8 +7322,7 @@ public class AppOpsService extends IAppOpsService.Stub {                  int numRestrictions = mOpUserRestrictions.size();                  for (int i = 0; i < numRestrictions; i++) {                      if (mOpUserRestrictions.valueAt(i) -                            .hasRestriction(code, pkg, attributionTag, user.getIdentifier(), -                                    false)) { +                            .hasRestriction(code, pkg, attributionTag, user.getIdentifier())) {                          number++;                      }                  }  |