教你制作Android_介绍
更新时间:2023-08-15 20:38:01 阅读量: 教学研究 文档下载
- 教你制作越南黑胶推荐度:
- 相关推荐
主要江苏了安卓系统的相关知识。
教你制作Android ROM
有点玩机兴趣的android爱好者,应该对custom ROM这种东西都不陌生。我介绍root权限获取的时候,就直接用的MoDaCo Custom ROM作为例子。适用于Hero比较好的ROM还有不少,比如Drizzy’s Custom HeroROM等等,都可以在XDA上找到。肯定有不少朋友感到很好奇,这些ROM都是怎么做的。考虑到中文社区相关资料比较少,在这里抛砖引玉,大概原理介绍一下。
对于第三方ROM来讲,通常都包括两部分,一个recoveryimage,一个update.zip。而大多数的第三方ROM的特色,就是加入了很多东西,比如superuser程序来获得root权限,busybox来扩充命令行下的功能,各种各样的配置文件或者小工具,比如默认打开中文locale,等等。这些看似神奇的改动,都是在update.zip里面搞的,custom recoveryimage的主要作用就是引导用户的操作,比如让你先备份,再应用update.zip,再重启之类的操作。由于custom recoveryimage和update.zip的耦合性很小,所以不少custom ROM直接都用同一个custom recoveryimage,这个好像是出自MoDaCo作者之手。再然后,我之前的文章已经有对 recoveryimage的简单讲解,所以这里,我主要介绍一下update.zip的制作。
如果我们直接把MoDaCoROM中的update.zip解包,我们会发现有一个boot.img,一个data文件夹,一个system文件夹,一个META-INF文件夹。这个data文件夹放的是init.rc,而本来在系统中,init.rc就是在data目录下的。当然,两者的作用不一样,这里的init.rc主要作用是开机执行你希望执行的命令,比如MoDaCo的init.rc就是install busybox。
而值得详细说明的,就是system文件夹。MoDaCoROM版本的system下有一系列作者希望放到系统中的工具,对于apk文件,就放到app下,工具就放到bin和xbin下,依此类推。换句话说,system或者data这个目录层次结构是取决于你自己的,你希望放的东西属于什么,应该运行在online系统的什么目录下,update.zip里面就应该是有相应的目录路径,然后东西就放在里面。
具体点,我们现在要依样画葫芦,搞一个新的update.zip,那么第一步就是首先建立一个文件夹
mkdir new-update
好,假设我新update.zip的作用就是预装我自己的一个程序,my.apk,那么,我建立对应的子目录
mkdir -p new-update/system/app
cp my.apk !$
这样,system目录就完成了。但是这时,update.zip的目录层次还没完,我们看MoDaCoROM中的update.zip中有文件夹叫META-INF,这个文件夹很关键,除了根目录下的三个文件外,里面层层目录,就包括了一个文件,叫update-script,内容如下
show_progress 0.1 0
copy_dir PACKAGE:system SYSTEM:
set_perm_recursive 0 0 0755 0644 SYSTEM:xbin
主要江苏了安卓系统的相关知识。
set_perm_recursive 0 0 0755 0644 SYSTEM:sd
set_perm 0 0 04755 SYSTEM:bin/su
set_perm 0 0 04755 SYSTEM:bin/a2sd
set_perm 0 0 04755 SYSTEM:xbin/busybox
copy_dir PACKAGE:data DATA:
show_progress 0.2 0
format BOOT:
write_raw_image PACKAGE:boot.img BOOT:
show_progress 0.2 10
这里面的内容,大部分是针对你要做的修改设置的。比如
copy_dir PACKAGE:system SYSTEM:
就是把system中新增的工具拷贝到手机上,然后
set_perm_recursive 0 0 0755 0644 SYSTEM:xbin
set_perm_recursive 0 0 0755 0644 SYSTEM:sd
set_perm 0 0 04755 SYSTEM:bin/su
set_perm 0 0 04755 SYSTEM:bin/a2sd
set_perm 0 0 04755 SYSTEM:xbin/busybox
就是设置MoDaCo ROM中新增程序的权限,然后
copy_dir PACKAGE:data DATA:
把data下的内容(就是那个init.rc)复制到手机上,然后
format BOOT:
write_raw_image PACKAGE:boot.img BOOT:
刷boot分区。
那我们这里没有这么多新增的东西,应该怎么写呢?
copy_dir PACKAGE:system SYSTEM:
set_perm_recursive 0 0 04755 SYSTEM:app/my.apk
就可以了。你当然还可以做一些别的事情,比如加一个FORMAT DATA之类的^_^开个玩笑,千万别这个干,不然你的数据就全没了。
好,那么也就是说,我们要在自己的new-update目录下也建一个/META-INF/com/google/目录,然后把新的update-script扔进去。
完了么?差一点。其实如果你没有别的需求了,那么就完了,可以把下面这一小块跳过。下面这一小块,是关于boot.img的。在如何修改Android系统的Ramdisk以及boot镜像文章中,我们谈到,如果刷boot镜像有问题,就要用别的方法让系统boot我们自己的bootimage
主要江苏了安卓系统的相关知识。
了,这个别的方法,自然就是用update.zip了。MoDaCoROM版本的update.zip也包括了一个boot.img,但是如果我们有出于各种需求自己修改的boot.img,自然就可以替换掉原来的了。当然注意,如果加了boot.img,那么update-script里面就不能漏掉
write_raw_image PACKAGE:boot.img BOOT:
这句。
好,到现在,我们的new-update目录下有
/system/app/my.apk
/META-INF/com/google/update-script
/META-INF/MANIFEST.MF
/META-INF/CERT.SF
/META-INF/CERT.RSA
boot.img
恩,那么就进入打包阶段。你可能会问,这有什么难的,直接zip一下不就得了。如果要是这么简单就好了,你打包后,必须把你的内容都sign一下,得到相应的cert,才能在fastboot模式中被承认并成功刷机。
在sign你的文件之前,先做这么几件事
打包。进入update文件夹,zip update.zip xxx xxxx xxxx xxxxxxxx。什么意思呢,就是只把你需要的文件打包,不要用./*作为参数。而且相对路径最好是在update下面,不要在外面用zipupdate.zip ./update/*这种命令打包
去sun网站下载最新的jre
下载这个文件testsign
一定要用JRE1.6.0.16或者更高,我知道这个有点恶心,但是提供下载的testsigh.jar就是按照这个版本或者更高编译的,你用老版本就运行不了。
好,下下来以后,执行这个命令
~/jre1.6.0_16/bin/java -classpath testsign_path/testsign.jar testsign update.zip update-signed.zip
稍微讲解一下,java程序是最新jre下的,testsign_path是你放testsign.jar的地方,建议放到sdk的tool目录下。update是待sign文件,update-signed是指定的生成文件名。
sign执行完后,用unzip -l看,会发现
转自:
贡献者: 康康
正在阅读:
教你制作Android_介绍08-15
高考成语复习资料全集03-08
2022年华中科技大学管理学院632法学综合考研强化班模拟试题及答04-10
广东省梅州梅县区地区生产总值和指数、农业总产值3年数据洞察报告2020版08-10
幼儿园端午安全教案【优秀2篇】03-27
先锋英语2背诵段落及翻译12-16
四川省宜宾四中2022届高三数学下学期第一次在线月考试题 理04-18
暑期教师专业技能比赛方案11-18
劝返入学复学通知书06-11
高一数学必修1各章知识点总结10-02
- 公务员上岸同学告诉你,怎样走出面试中常见的十大误区
- 作表率,我们怎么办(办公室主任)
- 乘务员安全责任书
- 增员面试流程
- 河南省焦作市规模以上租赁和商务服务业企业应付职工薪酬数据洞察报告2019版
- 最新4社区工作者面试题
- 个人简历表
- 男教工体检必检项目
- 河南省兰考县规模以上租赁和商务服务业企业应付职工薪酬数据洞察报告2019版
- 兼职译员测试稿
- 河南省开封市规模以上租赁和商务服务业企业应付职工薪酬数据洞察报告2019版
- 永州职业技术学院校园总体规划-永州职业学院
- 最新5、培训科长笔试题(答案)
- 2019雅商酒店境外人员登记培训稀有资料,不可错过
- 小学教师求职简历范文
- 红酒知识与礼仪
- 春节给领导拜年的短信拜年词
- 2019年上半年中小学教师资格证结构化面试真题1
- 20XX年县干部培训工作目标
- 硬笔试听课
- Android
- 制作
- 介绍
- 三年级数学教案第五、六、七、八、九单元
- 2011年3月全国计算机等级考试二级C语言笔试试题及答案
- 高考必背名句名篇识记总汇 课外名句100
- 污泥资源化利用及发展前景
- 校级精品课程-网页设计与制作(说课)
- 掺硼p_Si外延层厚度的测试方法
- 铜川企业年会哪家好?
- C++程序设计教程 第2章 过程的组织和管理
- 如何培育新战士当代革命军人核心价值观
- 小学体育田径培训教案
- 四川艺术职业学院生活部新学期工作计划1
- 中兴通讯股份有限公司财务分析
- 算法设计-LEC8
- 智能社区解决方案
- 怒汉——公民
- 2013三年级数学下册第五单元检测卷
- 现代索娜塔2.0驱动轴和车桥5
- 常吃这5种食物让你红颜不老
- 市场、人事、设计职业知识点集锦+面试应答话术
- 注册电气工程师考试 扫盲