标签: android-securityexception

Android 10 中出现“无活动管理员”SecurityException - 如何解决?

我在测试期间在 Google Play 管理中心的预发布报告中遇到错误。错误信息如下:

java.lang.SecurityException: No active admin ComponentInfo{com.google.android.apps.mtaas.deviceadmin/com.google.android.apps.mtaas.deviceadmin.DeviceAdminReceiver}
Run Code Online (Sandbox Code Playgroud)

此错误特别发生在 Android 10 (SDK 29) 中。完整的错误摘要如下:


Exception Process: com.google.android.apps.mtaas.deviceadmin, PID: 4380
java.lang.SecurityException: No active admin ComponentInfo{com.google.android.apps.mtaas.deviceadmin/com.google.android.apps.mtaas.deviceadmin.DeviceAdminReceiver}
  at android.os.Parcel.createException (Parcel.java:2088)
  at android.os.Parcel.readException (Parcel.java:2056)
  at android.os.Parcel.readException (Parcel.java:2004)
  at android.app.admin.IDevicePolicyManager$Stub$Proxy.setNetworkLoggingEnabled (IDevicePolicyManager.java:15305)
  at android.app.admin.DevicePolicyManager.setNetworkLoggingEnabled (DevicePolicyManager.java:11627)
  at com.google.android.apps.mtaas.deviceadmin.EnableNetworkLogging.onStart (EnableNetworkLogging.kt:27)
  at android.app.Instrumentation$InstrumentationThread.run (Instrumentation.java:2209)
Caused by android.os.RemoteException: Remote stack trace:
  at com.android.server.devicepolicy.DevicePolicyManagerService.getActiveAdminWithPolicyForUidLocked (DevicePolicyManagerService.java:3259)
  at com.android.server.devicepolicy.DevicePolicyManagerService.getActiveAdminOrCheckPermissionForCallerLocked (DevicePolicyManagerService.java:3155)
  at com.android.server.devicepolicy.DevicePolicyManagerService.getActiveAdminForCallerLocked (DevicePolicyManagerService.java:3136)
  at com.android.server.devicepolicy.DevicePolicyManagerService.enforceCanManageScopeOrCheckPermission (DevicePolicyManagerService.java:7218)
  at com.android.server.devicepolicy.DevicePolicyManagerService.enforceCanManageScope (DevicePolicyManagerService.java:7204)

Run Code Online (Sandbox Code Playgroud)

我需要帮助来解决这个特定错误。任何帮助或指导将不胜感激。

java android device-admin android-securityexception google-developers-console

45
推荐指数
3
解决办法
2万
查看次数

Android:Permission Denial:使用已撤销权限android.permission.CAMERA启动Intent

我正在尝试启动ACTION_IMAGE_CAPTURE活动,以便在我的应用中拍照并且我在主题中收到错误.

堆栈跟踪:

FATAL EXCEPTION: main
Process: il.ac.shenkar.david.todolistex2, PID: 3293
java.lang.SecurityException: Permission Denial: starting Intent { act=android.media.action.IMAGE_CAPTURE cmp=com.google.android.GoogleCamera/com.android.camera.CaptureActivity } from ProcessRecord{22b0eb2 3293:il.ac.shenkar.david.todolistex2/u0a126} (pid=3293, uid=10126) 
with revoked permission android.permission.CAMERA
Run Code Online (Sandbox Code Playgroud)

摄像机权限被添加到manifest.xml fie:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_CALENDAR" />
<uses-permission android:name="android.permission.WRITE_CALENDAR" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
Run Code Online (Sandbox Code Playgroud)

这是打开相机的电话:

RadioGroup radioGroup = (RadioGroup) findViewById(R.id.statusgroup);
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(RadioGroup group, int checkedId)
        {
            RadioButton rb = (RadioButton) findViewById(R.id.donestatusRBtn); …
Run Code Online (Sandbox Code Playgroud)

android android-securityexception

29
推荐指数
5
解决办法
5万
查看次数

为什么NotificationManagerCompat :: cancelAll()获取SecurityException?

使用NotificationManagerCompat取消所有通知.

NotificationManagerCompat manager =  
    NotificationManagerCompat.from(ctx.getApplicationContext());
manager.cancelAll();
Run Code Online (Sandbox Code Playgroud)

它有一段时间异常(大部分时间都有效).

在Andoid 6上:

java.lang.SecurityException:Permission Denial:来自pid = 22994的getCurrentUser(),uid = 10184需要android.permission.INTERACT_ACROSS_USERS

Fatal Exception: java.lang.SecurityException: Permission Denial: getCurrentUser() from pid=22994, uid=10184 requires android.permission.INTERACT_ACROSS_USERS
   at android.os.Parcel.readException(Parcel.java:1602)
   at android.os.Parcel.readException(Parcel.java:1555)
   at android.app.INotificationManager$Stub$Proxy.cancelAllNotifications(INotificationManager.java:649)
   at android.app.NotificationManager.cancelAll(NotificationManager.java:323)
   at android.support.v4.app.NotificationManagerCompat.cancelAll(NotificationManagerCompat.java:197)
Run Code Online (Sandbox Code Playgroud)

在Android 5.0,4.4.2上:

ava.lang.SecurityException:权限拒绝:来自pid = 5460的getIntentSender(),uid = 10135,(需要uid = 1000)不允许在android.os.Parcel.readException(Parcel.java:1465)中作为包android发送

Fatal Exception: java.lang.SecurityException: Permission Denial: getIntentSender() from pid=3109, uid=10153, (need uid=1000) is not allowed to send as package android
   at android.os.Parcel.readException(Parcel.java:1472)
   at android.os.Parcel.readException(Parcel.java:1426)
   at android.app.INotificationManager$Stub$Proxy.cancelAllNotifications(INotificationManager.java:271)
   at android.app.NotificationManager.cancelAll(NotificationManager.java:220)
   at android.support.v4.app.NotificationManagerCompat.cancelAll(NotificationManagerCompat.java:197)
Run Code Online (Sandbox Code Playgroud)

问题:

  1. 可能是什么原因?
  2. 这里有什么身份证?难道ctx.getApplicationContext().getApplicationInfo().uid …

android android-notifications android-securityexception android-binder

27
推荐指数
2
解决办法
2379
查看次数

java.lang.SecurityException:不再支持MODE_WORLD_READABLE

例外情况仅发生在Android 7.0 Nougat(模拟器)设备中.

java.lang.SecurityException:不再支持MODE_WORLD_READABLE

我的代码:

public void SessionMaintainence(Context context) {
    this.context = context;
    preferences = context.getSharedPreferences(PREF_NAME, Context.MODE_WORLD_READABLE);
    editor = preferences.edit();
    editor.commit();
}
Run Code Online (Sandbox Code Playgroud)

logcat的:

> E/AndroidRuntime: FATAL EXCEPTION: main
>                                                  Process: burpp.av.feedback, PID: 2796
>                                                  java.lang.RuntimeException: Unable to create application
> burpp.av.feedback.FeedbackApplication: java.lang.SecurityException:
> MODE_WORLD_READABLE no longer supported
>                                                      at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5364)
>                                                      at android.app.ActivityThread.-wrap2(ActivityThread.java)
>                                                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1528)
>                                                      at android.os.Handler.dispatchMessage(Handler.java:102)
>                                                      at android.os.Looper.loop(Looper.java:154)
>                                                      at android.app.ActivityThread.main(ActivityThread.java:6077)
>                                                      at java.lang.reflect.Method.invoke(Native Method)
>                                                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
>                                                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
>                                                   Caused by: java.lang.SecurityException: MODE_WORLD_READABLE …
Run Code Online (Sandbox Code Playgroud)

android android-securityexception android-sharedpreferences android-7.0-nougat

23
推荐指数
1
解决办法
3万
查看次数

使用Android 14开发应用时遇到的问题

我发现在我的应用程序达到相当大小(例如通过添加多个库)后,运行应用程序会抛出 java.lang.SecurityException: writable dex file '.../code_cache/.overlay/base.apk/classes2.dex' is不允许。

如果我然后删除大部分库,只留下默认添加的库,然后再次运行,它就可以工作。但是,如果我添加一点代码(例如日志),它可能会因相同的错误而失败。

如果我希望它运行时不出现此错误,我必须卸载该应用程序,然后从 Android Studio 再次运行。这非常不方便,因为每次我进行一些更改时,我都必须卸载该应用程序。我无法想象会有人愿意开发这样的 Android 应用程序。

有谁知道这个问题的解决方案?

android dex android-securityexception android-14

15
推荐指数
1
解决办法
7600
查看次数

如何将应用程序创建的线程视为与应用程序的ContentProvider不同的应用程序?

我有一个应用程序,当通过ContentObserver对a的更改通知时ContentProvider,尝试在后台线程上查询提供程序.这导致SecurityException抛出:

8-10 15:54:29.577    3057-3200/com.xxxx.mobile.android.xxx W/Binder? Caught a RuntimeException from the binder stub implementation.
  java.lang.SecurityException: Permission Denial: reading com.xxx.mobile.android.mdk.model.customer.ContentProvider uri content://com.xxx.mobile.android.consumer.xxx/vehicle from pid=0, uid=1000 requires the provider be exported, or grantUriPermission()
at android.content.ContentProvider.enforceReadPermissionInner(ContentProvider.java:539)
           at android.content.ContentProvider$Transport.enforceReadPermission(ContentProvider.java:452)
           at android.content.ContentProvider$Transport.query(ContentProvider.java:205)
           at android.content.ContentResolver.query(ContentResolver.java:478)
           at android.content.ContentResolver.query(ContentResolver.java:422)

应用程序创建的线程如何以应用程序的ContentProvider中的不同UID结束?

通过将异常断点在android.content.ContentProvider我看到UserHandle.isSameApp(uid, mMyUid)falseUserHandle.isSameUser(uid, mMyUid)true.我还看到提供者UID是10087.

android uid android-contentprovider android-securityexception

13
推荐指数
2
解决办法
575
查看次数

安全异常:无法启动服务。用户 0 被限制

我有以下异常跟踪。

  Fatal Exception: java.lang.RuntimeException: Unable to create application com.myapp.MyApplication: java.lang.SecurityException: Unable to start service Intent { cmp=com.myapp/.background.MyService }: Unable to launch app com.myapp/10232 for service Intent { cmp=com.myapp/.background.MyService }: user 0 is restricted
   at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4688)
   at android.app.ActivityThread.access$1600(ActivityThread.java:164)
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1438)
   at android.os.Handler.dispatchMessage(Handler.java:102)
   at android.os.Looper.loop(Looper.java:150)
   at android.app.ActivityThread.main(ActivityThread.java:5408)
   at java.lang.reflect.Method.invoke(Method.java)
   at java.lang.reflect.Method.invoke(Method.java:372)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:964)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:759)

  Caused by java.lang.SecurityException: Unable to start service Intent { cmp=com.myapp/.background.MyService }: Unable to launch app com.myapp/10232 for service Intent { cmp=com.myapp/.background.MyService }: user 0 is restricted
   at …
Run Code Online (Sandbox Code Playgroud)

android android-securityexception android-user-profile

8
推荐指数
1
解决办法
3352
查看次数

如何从 /vendor/app 启动与 android-TREBLE 兼容的供应商 java 服务

在我的 Android-O 设备中,下面两个后台服务通过 AIDL 相互通信。

  1. 本机/C++ android 服务

    • 通过 init rc 启动
    • 与系统 linux-user 一起运行
    • 部署在 /system 分区,eg, /system/bin/nat二进制。
  2. 来自 apk 的 Java 服务

    • 通过在 AndroidManifest 中注册的 bootcomplete 接收器启动。
    • 服务类也在 AndroidManifest 和 export:enabled 中指定。
    • 运行系统系统 linux 用户,使用平台证书签名。
    • 部署在系统分区中。 eg /system/app/jav/jav.apk

到目前为止没有问题。以上两个服务都注册了ServiceManager. 两个服务都可以通过 /dev/binder. 相互调用,都从 Android 启动开始并无限期地继续运行。

高音带来了麻烦:

按照 Treble 的要求,上面的两个都应该移动到 /vendor 分区,并有适当的 SEPolicies。,这样,java 和 c++ 服务都可以通过/dev/vndbinder.相互调用,即通过注册自己VendorServiceManager

参考文档https://source.android.com/devices/architecture/hidl/binder-ipc我能够启动本地 c++ 服务,/vendor/bin/nat从中VenorServiceManager(/dev/vndbinder)成功注册。

现在我可以通过vndservice call com.yyy.zzz.Myservice 0 但是,无法启动部署为的 JAVA …

android android-service android-service-binding android-securityexception android-application-class

8
推荐指数
0
解决办法
950
查看次数

Android M 6.0 - SecurityException试图删除帐户

我有一个使用Android AccountManager(包名:com.mycompany.accounts)的应用程序,它将帐户添加到设备并提供登录屏幕.我有另一个应用程序(com.mycomp.actualapp),它使用第一个应用程序添加/删除帐户.

我可以使用清单中的以下权限在Pre Marshmallow设备上成功添加和删除帐户:

<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/>
<uses-permission android:name="android.permission.USE_CREDENTIALS"/>
Run Code Online (Sandbox Code Playgroud)

使用sdk 22进行编译并使用sdk 22进行编译时,应自动授予这些权限.以下代码:

      accountManager.removeAccount(getAccount(), activity, new AccountManagerCallback<Bundle>() {
        @Override
        public void run(AccountManagerFuture<Bundle> accountManagerFuture) {
            try {
                Bundle bundle = accountManagerFuture.getResult();
                boolean success = bundle.getBoolean(AccountManager.KEY_BOOLEAN_RESULT);
                if (success) {
                    Toast.makeText(activity, activity.getString(R.string.successfully_loggedout), Toast.LENGTH_LONG).show();
                    afterLogoutSuccess(activity);

                } else {
                    Toast.makeText(activity.getApplicationContext(), activity.getString(R.string.failed_to_logout), Toast.LENGTH_LONG).show();
                }
                onLogoutListener.onLogoutFinished(success);
                return;
            } catch (OperationCanceledException e) {
                Log.e(TAG,"Operation cancelled exception:", e);
            } catch (IOException e) {
                Log.e(TAG, "IOException:", e);
            } catch (AuthenticatorException e) {
                Log.e(TAG, "AuthenticatorException:", e);
            }
            onLogoutListener.onLogoutFinished(false);

        }
    }, null); …
Run Code Online (Sandbox Code Playgroud)

permissions android android-account android-securityexception android-6.0-marshmallow

7
推荐指数
1
解决办法
2548
查看次数

Android:java.lang.SecurityException:包 com.android.phone (uid=1001) 与提供的 uid 10246 不匹配

场景:如果用户授予短信权限,我们将向特定号码发送短信。

设备:仅限搭载 Android 11 的三星设备。

代码:

SmsManager.getSmsManagerForSubscriptionId(subscriptionId)
.sendTextMessage(destinationAddress, null, getString(R.string.xyz)
.format(token), sendSMSPendingIntent, null)
Run Code Online (Sandbox Code Playgroud)

例外:

java.lang.SecurityException: Package com.android.phone (uid=1001) does not match provided uid 10246

android.os.Parcel.createExceptionOrNull Parcel.java:2385
android.os.Parcel.createException Parcel.java:2369
android.os.Parcel.readException Parcel.java:2352
android.os.Parcel.readException Parcel.java:2294
com.android.internal.telephony.ISms$Stub$Proxy.sendTextForSubscriber ISms.java:2102
android.telephony.SmsManager$1.onSuccess SmsManager.java:618
android.telephony.SmsManager.sendResolverResult SmsManager.java:1627
android.telephony.SmsManager.resolveSubscriptionForOperation SmsManager.java:1588
android.telephony.SmsManager.sendTextMessageInternal SmsManager.java:613
android.telephony.SmsManager.sendTextMessage SmsManager.java:451```
Run Code Online (Sandbox Code Playgroud)

sms android android-securityexception

7
推荐指数
1
解决办法
5020
查看次数