我们正在创建一个需要超级用户权限的 Android 应用程序。SuperUser.apk 和 su 已安装。然而,在 /data/app 与 /system/app 中安装我们的应用程序似乎有所不同。如果我们安装在 /data/app 中,一切似乎都正常。如果我们安装在 /system/app 中,SuperUser.apk 不会弹出来授予权限。
是否有某些类型的程序必须安装在一个位置而不是另一个位置?
TIA
我们正在创建一个需要超级用户权限的 Android 应用程序。SuperUser.apk 和 su 已安装。然而,在 /data/app 与 /system/app 中安装我们的应用程序似乎有所不同。如果我们安装在 /data/app 中,一切似乎都正常。如果我们安装在 /system/app 中,SuperUser.apk 不会弹出来授予权限。
是否有某些类型的程序必须安装在一个位置而不是另一个位置?
TIA
/system/app 文件夹中的 APK 文件已经具有系统级权限,因此它们不需要超级用户,我认为这就是它不会弹出的原因。
您应该确认您的应用程序已经拥有您请求的权限。例如,AlarmManager.setTime需要 signatureOrSystem 权限 android.permission.SET_TIME,如果没有它会抛出异常。您还可以使用PackageManager.checkPermission显式检查。
如果这不起作用,请检查 APK 文件的属性。如果它们与系统文件夹中的其他 APK 不匹配,Android 可能会忽略它们。你可以像这样修复它:
chmod 644 <filename>