当前位置: 代码迷 >> Android >> 请问 Android Runtime.getRuntime().exec() 执行命令 权限有关问题
  详细解决方案

请问 Android Runtime.getRuntime().exec() 执行命令 权限有关问题

热度:157   发布时间:2016-05-01 21:57:58.0
请教 Android Runtime.getRuntime().exec() 执行命令 权限问题
在Java程序中调用Runtime.getRuntime().exec()方法执行一些命令的时候
如果执行的是 获取信息的命令 可以顺利执行
如果执行的是 设置属性的命令 运行结果显示的也是正确的 可是被设置的属性的值却没有改变 在LogCat中看到的是“init: sys_prop: permission denied uid:XXXXX name:XXXXXXXXX”这样的错误提示 
请问各位有没有遇到过 没有有解决的办法 谢谢

------解决方案--------------------
你在AndroidManifest.xml中声明权限了吗》
------解决方案--------------------
AndroidManifest.xml 中添加
<uses-permission android:name="android.permission.相关权限" />
------解决方案--------------------
主要是执行java程序运行的用户的权限问题,android默认会为任何执行一个java程序创建一个单独的用户,但这个用户的权限比较低。具体可看看

App 权限一点知识
http://www.eoeandroid.com/thread-4308-1-1.html

但修改运行程序的用户,需在源代码编译环境。
------解决方案--------------------
我在调用SystemProperties.set()是也出现了
init: sys_prop: permission denied uid:10002
name xxx
燃耗在AndroidManifest.xml里添加
<uses-permission android:name="android.permission.ACCESS_CHECKIN_PROPERTIES" />
<uses-permission android:name="android.permission.FACTORY_TEST"/>
android:sharedUserId="android.uid.system" 后
init: sys_prop: permission denied uid:1000 name xxx
看来system uid = 1000这个特殊权限进程也不行。

不知道用什么方法可以修改到android的system properity
------解决方案--------------------
apk能不能修改和能修改哪些system properity跟执行java程序运行的用户的权限有关
例如uid=system有修改大部分属性的权限,但也不是任意自定义的属性都是可以修改的
但形如以下的系统属性是可以修改的
"net.xx","dev.xx","runtime.xx","hw.xx","sys.xx","service.xx","wlan.xx","dhcp.xx",
"persist.sys.xx","persist.service.xx“等
------解决方案--------------------
http://hi.baidu.com/thenightthemoonthewater/blog/item/3e02103456c1d9305bb5f5eb.html/cmtid/233f473e5e6ca53070cf6cff

这是你的解决方案?
------解决方案--------------------
楼上的办法可以一试。如果是我遇到这样的问题,一般都是在系统中去注册服务。
------解决方案--------------------
楼上在不改源码的基础上,怎么去注册系统服务呀?
  相关解决方案