刷自定义开机画面:
$ fasboot flash splash1 mysplash.rgb565
android文件系统制作教程(3) —- 利用Makefile制作update.zip
从update.zip这个刷机包反推的介绍整个android文件系统的制作过程
并编写了一个Makefile文件,利用 Makefile的”依赖检查”机制管理各种文件的生成步骤和依赖关系;
-1.前期准备
将所有的文件都放在/home/xiaoliang/workspace 目录下,目录下有这些文件夹:
auto-sign data system META-INF root
两个环境变量含义和必须的目录:
SRC_HOME : android源代码所在的目录,例如我放在 /home/xiaoliang/android_src 下
JAVA_HOME: JAVA SDK的目录,我的是 /server/jdk1.5.0_21
0.进行一次源代码编译
1.然后看下面的Makefile
#设置环境变量,JAVA_HOME默认就有
SRC_HOME=/home/liangwei/android_src
#它依赖于system,data,META-INF三个目录和一个boot.img镜像,并且它需要签名
update.zip : boot.img $(shell find system data META-INF)
#生成update_unsign.zip
zip -qr update_unsign.zip system data META-INF boot.img
#签名
$(JAVA_HOME)/bin/java -jar auto-sign/signapk.jar auto-sign/testkey.x509.pem auto-sign/testkey.pk8 update_unsign.zip update.zip
#删除中间文件
rm -f update_unsign.zip
#依赖于ramdisk.img 和 kernel.img 两个镜像
boot.img:ramdisk.img kernel.img
#使用mkbootimg制作
$(SRC_HOME)/out/host/linux-x86/bin/mkbootimg --cmdline 'no_console_suspend=1 console=null' --kernel kernel.img --ramdisk ramdisk.img -o boot.img
#其实它就是源码编译后生成的zImage,拷贝过来改个名字
kernel.img:$(SRC_HOME)/kernel/msm/arch/arm/boot/zImage
cp -f $(SRC_HOME)/kernel/msm/arch/arm/boot/zImage ./kernel.img
#是将root文件夹使用mkbootfs制作的镜像
ramdisk.img:$(shell find root)
$(SRC_HOME)/out/host/linux-x86/bin/mkbootfs ./root |gzip > ramdisk.img
2.总结一下,其实update.zip主要就是三个部分组成:
启动部分: root文件夹 + zImage内核镜像 = boot.img
系统文件部分: system文件夹
用户文件部分: data文件夹
就是:root + system + data + zIamage = update.zip
3.文件的出处
root,system,data文件夹: 来自”$(SRC_HOME)/out/target/product/generic”
zIamage: 来自”$(SRC_HOME)/kernel/msm/arch/arm/boot/zImage”
4.刷机脚本:META-INF文件夹
该需要自己创建,并且里面包含1个文件 : com/google/android/update-script ,内容为:
show_progress 0.500000 0
format SYSTEM:
copy_dir PACKAGE:system SYSTEM:
set_perm_recursive 0 0 0755 0644 SYSTEM:
set_perm_recursive 0 2000 0755 0755 SYSTEM:bin
set_perm 0 3003 02755 SYSTEM:bin/netcfg
set_perm 0 3004 02755 SYSTEM:bin/ping
set_perm 0 0 04755 SYSTEM:bin/su
set_perm 1002 1002 0440 SYSTEM:etc/dbus.conf
set_perm 1014 2000 0550 SYSTEM:etc/dhcpcd/dhcpcd-run-hooks
set_perm 0 2000 0550 SYSTEM:etc/init.goldfish.sh
set_perm_recursive 0 0 0755 0555 SYSTEM:etc/ppp
show_progress 0.200000 0
delete_recursive DATA:dalvik-cache
copy_dir PACKAGE:data DATA:
set_perm_recursive 1000 1000 0771 0555 DATA:dalvik-cache
write_raw_image PACKAGE:boot.img BOOT:
show_progress 0.200000 10
android文件系统制作教程(4) —- makefile脚本,制作各种单独的分区文件ramdisk.img,system.img,boot.img
#***********************************
# build android rom script
#***********************************
SRC_HOME=/home/liangwei/android_src
update.zip : boot.img $(shell find system data META-INF)
rm -rf update_unsign.zip
zip -qr update_unsign.zip system data META-INF boot.img
$(JAVA_HOME)/bin/java -jar auto-sign/signapk.jar auto-sign/testkey.x509.pem auto-sign/testkey.pk8 update_unsign.zip update.zip
rm -f update_unsign.zip
boot.img:ramdisk.img kernel.img
$(SRC_HOME)/out/host/linux-x86/bin/mkbootimg --cmdline 'no_console_suspend=1 console=null' --kernel kernel.img --ramdisk ramdisk.img -o boot.img
kernel.img:$(SRC_HOME)/kernel/msm/arch/arm/boot/zImage
cp -f $(SRC_HOME)/kernel/msm/arch/arm/boot/zImage ./kernel.img
kernel-qemu:$(SRC_HOME)/kernel/common/arch/arm/boot/zImage
cp -f $(SRC_HOME)/kernel/common/arch/arm/boot/zImage ./kernel-qemu
ramdisk.img:$(shell find root)
$(SRC_HOME)/out/host/linux-x86/bin/mkbootfs ./root |gzip > ramdisk.img
system.img : $(shell find system)
$(SRC_HOME)/out/host/linux-x86/bin/mkyaffs2image ./system system.img
userdata.img:$(shell find data)
$(SRC_HOME)/out/host/linux-x86/bin/mkyaffs2image ./data userdata.img
userdata-qemu.img:userdata.img
rm -rf userdata-qemu.img
cp userdata.img userdata-qemu.img
initlogo.rle:logo.png
convert -depth 8 logo.png rgb:logo.raw
$(SRC_HOME)/out/host/linux-x86/bin/rgb2565 -rle <logo.raw >initlogo.rle
cp -rf initlogo.rle data/data/com.android.mysplash/
rm -rf logo.raw
.PHONY:run
run:system.img ramdisk.img kernel-qemu userdata-qemu.img
/server/android-sdk-linux_86/tools/emulator -show-kernel -sysdir ./
android文件系统制作教程(5) —- 两行命令从png制作启动界面initlogo.rle
用图片工具编辑好想要的png之后,保存为logo.png
在logo.png所在命令下执行命令:
#使用ImageMagick自带的convert命令,进行raw格式转换
convert -depth 8 logo.png rgb:logo.raw
#android自带的rgb2565工具,对raw文件进行rle565格式转换
$(SRC_HOME)/out/host/linux-x86/bin/rgb2565 -rle <logo.raw >initlogo.rle
#然后将initlogo.rle拷贝到android系统根目录,也就是root目录底下
cp initlogo.rle root/
#删除中间文件
rm -f logo.raw
相关推荐
安卓4.0系统全局背景教程包含了如何修改全局背景,制作你喜欢的背景
Android基础阶段:平台架构特性(JAVA/C) Market/应用程序组件 环境搭建与部署/打包与发布 AVD/DDMS/AAPT 调试与测试 相关资源访问/资源制作 Activity/Service/Broadcast Receiver/Content Provider/原理(生命周期)及...
这 个方法目前可以模拟android1.5-3.0系统,从各种安卓系统的手机,到安卓系统的平板电脑都可以模拟,而且可以安装所有安卓程序,可以上网、登 QQ、听音乐等等。跟在手机和平板电脑上的操作和功能几乎一样。由于安装...
2. 文件系统分析 3. 制作交叉工具链 4. 软件编译常识 5. 设置模块流程分析 6. linux系统启动流程分析 7. linux下svn使用指南 8. LFS 相关 9. linux 内核的初步理解 -----------------------------------------------...
将 从百度网盘下载得到的镜像文件,通过使用深度启动盘制作工具制作成U盘启动盘,把镜像文件复制到启动盘上,并用它来引导您的PC,系统启动完成后,你把镜 像文件恢复到硬盘上(详细操作步骤可查看网盘中的教程)。...
非常有用的管理系统 带有数据库文件 结合了上面所说的所有技术 看看大小就知道了 绝不骗人
root就是手机的神经中枢,它可以访问和修改你手机几乎所有的文件,这些东西可能是制作手机的公司不愿意你修改和触碰的东西,因为他们有可能影响到手机的稳定,还容易被一些黑客入侵(Root是Linux等类UNIX系统中的...
APP源代码包含安卓和苹果IOS的源文件,可以编译生成两个系统所需要的软件安装包 可以修改图标、软件名、包名、签名,有能力的可以实现二开。 APP控制端功能设置说明: 制定APP图标与启动图 只需要填写域名即可通过...
其网站完整的教学的理念,先进的技术支持(他们甚至开启了移动手机看教程的计划,支持IPAD/IPHONE/ANDROID),都让人耳目一新。尤其是多层级的教学难度设置,有趣的考试内容,时不时的竞赛,让DT成为非常活跃的一个...
-国嵌内核驱动进阶班-3-2(根文件系统制作).avi -国嵌内核驱动进阶班-3-3(内核启动流程).avi -国嵌内核驱动进阶班-3-4(嵌入式文件系统).avi -国嵌内核驱动进阶班-3-5(必修实验).avi -第4天(内存管理子系统)...
使用USB连接要稍微麻烦一点,先做一点准备工作:下载adb客户端及驱动,解压缩后,把里面 adb.exe 和 AdbWinApi.dll 两个文件(搜索一下你的电脑,一般用安卓手机的电脑里都有这东西)放到系统盘的 windows/system32 ...
有了这些资料集合,单片机开发差不多全了 不能错过的Arduino...极客DIY:利用Arduino制作智能家居系统 - FreeBuf.pdf 爱上Arduino.pdf 物联网革命的三个阶段(联接未联接的,生成智能的联接,复杂子系统的自治).pdf
不能错过的Arduino图书.pdf Arduino一试就上手(第2版).pdf ...极客DIY:利用Arduino制作智能家居系统 - FreeBuf.pdf 爱上Arduino.pdf 物联网革命的三个阶段(联接未联接的,生成智能的联接,复杂子系统的自治).pdf
-国嵌内核驱动进阶班-3-2(根文件系统制作).avi -国嵌内核驱动进阶班-3-3(内核启动流程).avi -国嵌内核驱动进阶班-3-4(嵌入式文件系统).avi -国嵌内核驱动进阶班-3-5(必修实验).avi -第4天(内存管理子系统...
-在手机的前后摄像头之间切换,为客户制作出色的演示; -仅使用聊天获得支持和乐趣;在此处 检查可用的使用情况! 产业领域 -可以在大多数浏览器上使用点对点视频通信的所有类型; - 技术支持。与陷入困境的...
将您下载的文件复制到您在手机中制作的文件“dnss”中。 添加了对象检测器的文件。 这只是整个 Android Studio 项目; 如果你只专注于重要的三重奏,我帮你解决了; 你可以在下面找到它们。 库是为 mainactivity....
不能错过的Arduino图书.pdf Arduino一试就上手(第2版).pdf ...极客DIY:利用Arduino制作智能家居系统 - FreeBuf.pdf 爱上Arduino.pdf 物联网革命的三个阶段(联接未联接的,生成智能的联接,复杂子系统的自治).pdf
有没有通用的万能的安卓5.0.1ROM刷机包制作的可能性啊。 如何提取android4.40的手机驱动到android5.0.1ROM刷机包里面啊。 这个手机驱动文件提取过程是不是PC必须安装最新的32位JDK (只能装32位,因为Android SDK只...
Tasker是一个让安卓系统根据用户定制的”配置文件”(Profiles),在特定的”背景”下(Contexts),执行指定”任务”(Tasks)的软件,除此之外,它还提供”可供点击”的(Clickable)或”定时运行”的(Timer)桌面”插件”...