应用程序启动前崩溃:SecurityException:Permission Denial:INTERACT_ACROSS_USERS_FULL

and*_*per 24 android securityexception root android-permissions

背景

我有一个root设备,它是Galaxy S3 I9300,基于Android 4.3的三星基于股票的ROM.

运行我正在使用此设备的应用程序时,我从未遇到任何问题.

问题

从昨天开始(我没有更改设备上的任何内容),每次打开应用程序时,它都显示很短的时间,关闭自己没有任何崩溃对话框,但它显示下一个日志:

01-30 09:27:18.325: E/DatabaseUtils(2366): Writing exception to parcel
01-30 09:27:18.325: E/DatabaseUtils(2366): java.lang.SecurityException: Permission Denial: get/set setting for user asks to run as user -2 but is calling from user 0; this requires android.permission.INTERACT_ACROSS_USERS_FULL
01-30 09:27:18.325: E/DatabaseUtils(2366):  at com.android.server.am.ActivityManagerService.handleIncomingUser(ActivityManagerService.java:13140)
01-30 09:27:18.325: E/DatabaseUtils(2366):  at android.app.ActivityManager.handleIncomingUser(ActivityManager.java:2038)
01-30 09:27:18.325: E/DatabaseUtils(2366):  at com.android.providers.settings.SettingsProvider.callFromPackage(SettingsProvider.java:607)
01-30 09:27:18.325: E/DatabaseUtils(2366):  at android.content.ContentProvider$Transport.call(ContentProvider.java:279)
01-30 09:27:18.325: E/DatabaseUtils(2366):  at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:273)
01-30 09:27:18.325: E/DatabaseUtils(2366):  at android.os.Binder.execTransact(Binder.java:388)
01-30 09:27:18.325: E/DatabaseUtils(2366):  at dalvik.system.NativeStart.run(Native Method)
Run Code Online (Sandbox Code Playgroud)

它甚至没有得到扩展Application的类的代码......

我发现了什么

似乎这个问题非常普遍(许多人已经报道过这个问题),但我找不到任何解决方案以及为什么会出现这种情况,除了拥有一个有根设备.

人们还说这里写的权限实际上是一个系统权限,但我从来没有听说过它,更不用说使用它了(甚至不确定它是什么).

问题是,我正在处理的应用程序没有任何与root相关的内容,而且它在几天前就已经运行了.

我试图重新安装ROM(Omega ROM v54)并禁用任何与xposed框架相关的东西.它没有帮助.

这个问题

我该如何解决这个问题?我怎么知道其他用户不会有这个问题?

它甚至与root设备有关吗?


编辑:我想我已经找到了一个解决方案,通过在设置屏幕的开发人员部分选择"撤消USB调试...".它似乎最初工作,但后来问题返回并点击它没有做任何有用的事情......


编辑:我认为这只是应用程序本身或ROM上的一个错误,因为我无法重现它.这很奇怪,因为我非常确定我已经尝试调试应用程序并在acidation的onCreate方法(也许是应用程序类本身)上设置断点,并且它并没有就此止步.

Gui*_*ino 0

您可以尝试将 apk 移动到 /system/app/ 并检查它是否在那里工作,因为在那里它将作为用户 0 执行。之后也许您可以比较两个日志(工作日志和常规日志)以查看应用程序在哪里停止。

要从 shell 安装它:

adb remount
adb push yourApp.apk /system/app/
adb reboot
Run Code Online (Sandbox Code Playgroud)