IT源码网

android之通过 adb shell 和代码理解命令之Android

third_qq_4accc0ab0fa5b582 2024年12月31日 程序员 45 0

我正在尝试向应用授予 BATTERSTATS 权限。当我从 PC 运行命令时 - 它工作得很好:

adb shell pm grant com.example.sample.myapplication android.permission.BATTERY_STATS 

但是从 Android 应用程序运行时,相同的 pm grant 命令不起作用:

java.lang.Process process = Runtime.getRuntime().exec("pm grant com.example.sample.myapplication android.permission.BATTERY_STATS"); 

是否需要root权限才能授予此权限? 如果是这样,为什么不需要设备 root 即可通过 adb shell 运行它?

我是 Android 新手,请更清楚地解释一下里面发生了什么以及如何继续。

请您参考如下方法:

使用 adb shell 运行的命令将使用 shell(UID=2000) 用户权限执行。您从 java 代码运行的命令将使用您应用的 UID 权限执行。这就是差异。


评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!