Android 使用系统限制的权限的apk应安装到 /system/app 目录下
2011-07-05 19:48
1206 查看
在 Android 中,如果要使用系统限制的权限(比如 android.permission.WRITE_SECURE_SETTINGS),我们需要把程序安装到 /system/app/ 下
比如,我写了一个APK ,其中的主 Activity中用到以下代码:
。。。。
ContentResolver resolver = context.getContentResolver();
// 获得gps当前的状态,若为true表示打开, false 为关闭
boolean assisted_gps_enabled = Settings.Secure.isLocationProviderEnabled(resolver, LocationManager.GPS_PROVIDER);
// 如果关闭, 则打开
if(!assisted_gps_enabled)
Settings.Secure.setLocationProviderEnabled(resolver, LocationManager.GPS_PROVIDER, true);
。。。
然后在AndroidManifest.xml 中声明权限
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
这时,无论通过 adb push 还是 adb install 或者是 之间修改mk文件将apk集成进系统(当然指定到 /data/app下),运行apk是总会报
java.lang.SecurityException: Permission denial: writing to secure settings requires android.permission.WRITE_SECURE_SETTINGS
这个错误
这是因为android.permission.WRITE_SECURE_SETTINGS是系统限制的权限。所以apk需要是系统的apk (/system/app下才可以)。可以把apk 通过 adb push “你的apk” system/app 或者 修改mk文件将其编入system镜像
比如,我写了一个APK ,其中的主 Activity中用到以下代码:
。。。。
ContentResolver resolver = context.getContentResolver();
// 获得gps当前的状态,若为true表示打开, false 为关闭
boolean assisted_gps_enabled = Settings.Secure.isLocationProviderEnabled(resolver, LocationManager.GPS_PROVIDER);
// 如果关闭, 则打开
if(!assisted_gps_enabled)
Settings.Secure.setLocationProviderEnabled(resolver, LocationManager.GPS_PROVIDER, true);
。。。
然后在AndroidManifest.xml 中声明权限
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
这时,无论通过 adb push 还是 adb install 或者是 之间修改mk文件将apk集成进系统(当然指定到 /data/app下),运行apk是总会报
java.lang.SecurityException: Permission denial: writing to secure settings requires android.permission.WRITE_SECURE_SETTINGS
这个错误
这是因为android.permission.WRITE_SECURE_SETTINGS是系统限制的权限。所以apk需要是系统的apk (/system/app下才可以)。可以把apk 通过 adb push “你的apk” system/app 或者 修改mk文件将其编入system镜像
相关文章推荐
- Android /data/data/app_file/目录下面安装apk无权限问题
- Android /data/data/app_file/目录下面安装apk无权限问题
- android删除系统内置apk(system/app目录下apk)
- android 安装apk 到 /system/app 目录
- 求教Android 将APK安装到/system/app的方法
- android开发中,apk文件安装到\system\app 的解决办法 仅限root机
- 使用Android系统隐藏api 读取*.apk 程序安装包信息
- android使用mount挂载/system/app为读写权限,删除或替换系统应用
- 修改Android系统内/system目录权限使其可读写
- Android:安装APK包以后系统文件目录的变化
- 将APK安装到/system/app,变身系统级应用
- android开发中,apk文件安装到\system\app 的解决办法 仅限root机
- Android常用代码之普通及系统权限静默安装APK
- 解决:Android使用自带sqlite开发时,apk中创建的数据库外部的进程是没有权限去读/写的,而且无法如何读取指定目录下的db文件
- Android使用aapt工具查看apk详细信息(包名,权限),在一个app中打开另一个app(微信为例))
- 手机root后adb命令安装应用到system目录冒充系统app的cmd脚本
- [Unity]Android(安卓)代码安卓APK时,使用系统安装器安装的[最正确]办法(不弹出选择打开的程序)
- Android杂谈--修改Android系统内/system目录权限使其可读写
- 求教Android 将APK安装到/system/app的方法
- 【转】Android杂谈--修改Android系统内/system目录权限使其可读写