问题我遇到的问题是我想在Java应用程序中动态mount一个NFS的系统,但是执行mount命令必须要要root权限才可以
一般情况下,在Android的Java层是不能获得root权限的
思路我在博文《Android程序的安全系统》中提到两种思路:1、实现一个init实现一个Service,来帮助 Android应用程序执行root权限的命令
2、 实 现 一个虚 拟 设 备 ,这 个设 备 帮 助 Android应用程序执行root权限的命令
本 文将 会 选 择 第 一种来 解 决 Android应用程序mountNFS文件系统的问题
rcService在Android系统init
rc中定义很多 Service,具 体定义格式 可以参 考 《AndroidPlatformDeveloper’sGuide》中的“AndroidInitLanguage”
rc中定 义 的Service将 会 被Init进程创建,这样将可以获得root权限
现 在问题是Android应用程序怎 样 启 动让 init进 程知 道我们 想运 行那 个进 程呢
答 案 是设 置 系统属 性 “ctl
start”,把 “ctl
start”设 置 为 你 要运 行的Service,假 设 为 “xxx”,Android系统将会帮你运行“ctl
start”系统属性中指定的Service
那 么 运行结 果 init进 程 将会将会写 入 命 名 为“init
+Service名 称 ”的属性中, 也 就 是 “init
xxx”属性,应 用程 序可 以参 考查 阅这 个值 来确 定Service执 行的情况
想更深入了解 Androidproperty系统可以参考博文 《(翻译)Android属性系统》
Androidproperty权 限难 道 A