Android下以root权限启动程序
使用Android手机的人很多,很多人都会安装第三方的ROM,这些第三方的ROM一般都可以获取到root权限。但是即使在可以获取root权限的ROM上,java程序权限也是很低的。如何启动一个root权限的程序来完成某些高权限的任务呢?答案是使用su。第三方ROM上的su一般都是修改过的,可以被java程序调用。因此我们可以把高权限的操作放到一个单独的程序中,假设这个程序是/data/data/net.test.com/lib/libroot.so。第一次使用时通过su执行一个root权限的脚本,在脚本中把libroot.so的所有者设置为root,属性设置为4777,这样下次再使用时执行libroot.so,libroot.so就会以root权限运行。
这种方法不是100%可靠,某些手机上即使设置了所有者为root和属性为4777,程序仍然不会以root运行。这时就要在每次启动libroot.so都通过”su –c”来创建进程。每次调用su创建root权限进程时系统都会提示用户进行选择“运行”或“拒绝”或“记住”。如用户选择了记住,则下一次不会提示,因此没有都使用su来启动也不会带来太差的用户体验。