制作Android Root Ramdisk
概 述
制作Android的Root Ramdisk,供linux挂载并运行
目 录
1. Android Root Ramdisk介绍... 3
2. Android Root Ramdisk的开发环境... 3
4. 使用Android Root Ramdisk 前提... 4
1. Android Root Ramdisk介绍
Android Root Ramdisk 是整个Android开源项目编译后的最终输出文件夹,linux系统启动后将直接挂载该文件夹为系统根目录,并执行Android的init程序,启动整个Android应用。
Android Root Ramdisk制作正确与否将直接影响到Android应用是否正常运行。
2. Android Root Ramdisk的开发环境
SecureCRT:使用该软件读取Target上的串口信息,监控系统,也可以使用window的超级终端或其他串口软件。
NFS:Target上的linux系统,使用NFS文件系统挂载Android Root Ramdisk作为Linux根目录,并启动Android应用。
Copy:将Android Project下的源代码编译生成的root文件目录做部分修改后,拷贝到NFS Server的目录下。
Telnet,SSH2:通过该协议的相关软件(SecureCRT,Puty等),登陆Linux Host操作Android Project,NFS Server。
3. 制作Android Root Ramdisk
l 获取一份Android Project代码
l 拷贝到linux host上,并解压
l 确认linux host安装了相关编译软件包
l 在Android Project根目录下直接make
l 大约2~3个小时后可以编译完成
l 拷贝出Android Project根目录下的/out/target/product/generic/root文件夹,作为Android Root Ramdisk
l 再拷贝Android Project根目录下的/out/target/product/generic/system目录到Android Root Ramdisk目录下,覆盖原有system目录(原目录通常是个空文件夹)
l 注释掉Android Root Ramdisk根目录下init.rc文件中某一个命令,如下:
mount rootfs rootfs / ro remount
变为
# mount rootfs rootfs / ro remount
至此Android Root Ramdisk制作完成。
4. 使用Android Root Ramdisk 前提
l Linux内核必须移植正常,能够顺利启动系统,如果在Linux系统启动Android的init程序之前便失败的话,要检查linux内核配置。目前制作出来的Android Root Ramdisk可以运行在内核2.6.25,以及2.6.27内核上。
l NFS Server必须设置好rw权限。
l 目前Android Root Ramdisk的制作方法适用于各种Android Project的版本(包括cupcake)。
5. 现存的问题
l 该制作方法出来的Android Root Ramdisk可以进入Android的待机界面,但按键,触摸屏的事件暂时还无法响应操作(但Android应用可以识别到按键消息)