android 修改ramdisk.img和init.rc android启动后设置/data权限为770
有時候希望在啟動后做點事情,比如在sdcard上建立目錄,修改/data的訪問權限等,這些都可以放在init.rc中去完成,那么如何來完成呢,最近由于工作的需要,在這方面進行了一些研究,特寫于此,供大家參考。
通過下面的例子來講述,實現一個功能:在android系統啟動后,修改/data的訪問權限為770.
共4步:1、解壓ramdisk.img 2、用c語言完成要實現的功能 3、修改init.rc,啟動c語言可執行程序 4、制作ramdisk.img
1、解壓ramdisk.img:
解壓、修改Android的ramdisk.img的手動方法:
將ramdisk.img復制一份到任何其他目錄下,將其名稱改為ramdisk.img.gz,并使用命令
gunzip ramdisk.img.gz
然后新建一個文件夾,叫ramdisk吧,進入,輸入命令
cpio -i -F ../ramdisk.img
這下,你就能看見并操作ramdisk里面的內容了。
2、完成一個C語言程序chpermission.c,來實現修改權限的功能。代碼如下:
#include <stdlib.h>
int main()
{
system("chmod 700 /data");
return 0;
}
然后編譯此程序,不過需要編譯為android下的可執行程序,可參考我的博客:http://blog.csdn.net/liushaogeng/archive/2010/09/01/5855925.aspx ,采用博客中介紹的兩種方法均可以。 編譯完后將可執行文件push到模擬器的/data目錄中去: #adb push chpermission /data3、 修改ramdisk目錄下init.rc文件,讓其啟動 chpermission程序, 增加以下代碼:
#add by me on 2010-10-18
service chpermission /data/ chpermission
oneshot
用于啟動 chpermission,完成相應的功能--修改data權限。
init.rc的語法可參考博客: http://blog.csdn.net/liushaogeng/archive/2010/10/18/5949244.aspx4、制作ramdisk.img,
init.rc修改之后,可以使用下列命令重新打包成鏡像
cpio -i -t -F ../ramdisk.img > list
cpio -o -H newc -O lk.img < list
當前目錄下生成的lk.img就是我們的新鏡像了。
將ramdisk.img拷貝到sdk指向的目錄。
全部ok,重啟自己的模擬器,查看data權限是否為770
總結
以上是生活随笔為你收集整理的android 修改ramdisk.img和init.rc android启动后设置/data权限为770的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux frame buffer 编
- 下一篇: android编译全过程