首页 ROM简单制作教程

ROM简单制作教程

举报
开通vip

ROM简单制作教程ROM简单制作教程 前言 经常看到网友问:哥几个,推荐一个好用的ROM啊?这时候我们要有信心说:自己制作的ROM才是最好的ROM。当然制作ROM并不是那么简单,但也不是难到一般人做不了。高端的大大可以从安卓源码开始编译ROM,但也是以团队的形式,比较出名的有CM和MIUI。一般人还是只能从底包提取文件进行修改制作。但这也不是轻易能完成的事。我写这个教程只是出于爱好,本人并非计算机专业,所以写的并不是很专业。但正因为如此,才能给大家更多的信心,我都能简单制作,你还怕你不行?本篇教程采用一种新的模式给大家展示这个教程。...

ROM简单制作教程
ROM简单制作教程 前言 经常看到网友问:哥几个,推荐一个好用的ROM啊?这时候我们要有信心说:自己制作的ROM才是最好的ROM。当然制作ROM并不是那么简单,但也不是难到一般人做不了。高端的大大可以从安卓源码开始编译ROM,但也是以团队的形式,比较出名的有CM和MIUI。一般人还是只能从底包提取文件进行修改制作。但这也不是轻易能完成的事。我写这个教程只是出于爱好,本人并非计算机专业,所以写的并不是很专业。但正因为如此,才能给大家更多的信心,我都能简单制作,你还怕你不行?本篇教程采用一种新的模式给大家展示这个教程。将会从简单的知识普及,制作工具,步骤等说明, 工程 路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理 巨大,错误也不少,但还是希望能帮助到大家。以下内容参考到的作者较多,就不一一详说了,感谢这些兄弟的奉献,让我们有一个更好的玩机空间。 关键词:java环境配置。制作工具 update-script编写美化 集成 编译反编译 一.制作目的: 1.培养个人兴趣,感受动手动脑的快乐。 2.学习手机基本知识,最终动手制作自己的ROM。 3.帮助那些需要帮助的朋友(说不定有人喜欢你制作的ROM) 二.制作原理: 1.安卓基础知识普及: Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。目前,最新版本为Android 2.4Gingerbread和Android 3.0Honeycomb。 ①底包:官方的系统包,相当于我们的Windows的操作系统,事实上它相当于一个纯净版或者内核版的系统包,是最底层的东西。扩展名为sbf,底包通常是官方发布的,ROM作者直接拿来用的,可以选择的版本不会太多,通常更新也不会频繁。底包通常使用PC端刷机工具(RSD)配合Bootloader的工程模式完成刷入。 ②升级包(镜像包):广大玩家制作的底包增强包,通常 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 现为一个update.zip文件。升级包是对底包的扩展和增强,包含一系列的辅助工具和服务,没有中文的底包通过升级包可以实现中文。当然,很多功能也是通过升级包来实现的。可以说,在刷新了底包后,配合刷新相应的升级包,这样才形成一个完整系统。升级包通常通过Recovery工具,从SD卡读取刷入。 ③Bootloader :相当于电脑里面的bios(基本输入输出系统),手机一开机,控制手机的就是Bootloader。我们通常所说的进入Bootloader,实际上是指进入Bootloader的工程模式,既是刷机模式,在此模式下可以将moto的sbf文件(底包)刷到机器里面。 ④Recovery : Moto 手机内置的一个独立备份恢复工具,类似电脑上的一些一键还原系统,既是在系统出现问题的时候仍然可以打开的一个模式。Moto 的 Recovery 主要提供了WIPE(硬启,清除数据,恢复出厂设置)和Update(通常用于安装升级包,update.zip)功能。 Recovery是不能直接刷新的底包的,通常它刷新的升级包(update.zip)的方式是:自动寻找SD卡上的特定文件,然后写入。 ⑤基带(Baseband):是手机中的一块专门的代码,或者可以理解成为一个专门负责通讯的BIOS,负责完成移动网络中无线信号的解调、解扰、解扩和解码工作。基带的不同会造成信号效果的不同。因为各地、各网络实际情况不同,需要大家自己选择适合自己的基带。 ⑥WIPE :wipe后就恢复了出厂设置,包括联系人、短信、安装的软件等全部删除。俗称硬启,恢复出厂设置。注意,wipe后app2sd和root权限需要重新做。而且app2sd重要的分区步骤也要重新来过。某些说法提到在刷新底包或者升级包前需要进行WIPE操作,我对此操作的必要性不是很确定。 ⑦OpenRecovery(简称OR) :由于MOTO很蛋疼的在update.zip上做了一些手脚,这些东西影响到了升级包的制作。于是高手们就搞出了一个OpenRecovery,这其实就一个第三方的增强版的Recovery工具,某些OpenRecovery已经发展成为一个具有很多功能的小系统了(类似WindowsPE),在这个OR中,可以完成很多东西,我们完全可以把OR想象成电脑上用的应急PE系统,在上面可以调整超频、基带、app2sd、更换启动画面、wipe、改变时区、调整键盘布局,甚至链接USB当读卡器等等,凡是recovery能做的,OR都可以做,recovery不能做到,OR可以做到。一般OpenRecovery在sd卡上有两个部分存在:update.zip和OpenRecovery目录,最新的GOT底包添加了新的一个OpenRecovery-CFG目录,用来存放各种个人文件。update.zip就是用来坑MOTO一个标准的的zip升级包,而真正的升级包要放在/sdcard/OpenRecovery/updates目录下。 ⑧App2sd :说白了,其实很简单,就是把APK文件安装到sd卡上,android是Linux脱胎而来,App2sd的原理就是对SD卡进行分区,然后把SD上划分出来的某个分区合并到系统分区中去(听不懂,不要紧),划分出来的分区是Ext2格式,一般Windows不能识别,不要惊慌,正常现象。App2sd对sd卡要求比较高,如果感觉app2sd后比较慢,可以试试换一张C4的sd卡。因为在2.1的环境下,app2sd需要对sd进行分区,操作比较复杂,E文不好的小白或者电脑基础薄弱的小白容易失误。建议对Android非常熟悉了再做App2sd。 ⑨Root :大家都知道android系统脱胎自Linux,也正是这个开源的内核让广大玩家可以自由发挥。Root是Linux系统下的系统级账号,拥有系统的全部权限,Android 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 上的不开放这个用户的,目的是为了保护系统安全,但是这个保护似乎也带来很多不便。于是就一些工具和方法来开放这个账号。开放Root账号的方法似乎有很多,这里就不再细说。原理上分析,root的账号,应该通过在Android系统安装某个系统级别的服务,该服务具有root权限,然后其它需要root权限的程序再向这个服务请求root权限。WIPE、刷机都有可能会造成root权限失效,需要重新root权限。 额外说明: ①从原理上分析,通常底包,Bootloader,Recovery,基带都是可以刷新替换的,升级包当然更可以。但是底包、Bootloader很少会有第三方开发或者修改的,一般都使用官方发布的。底包有时候会内置Bootloader、Recovery,这样的底包刷新时会连上述两者一起更新(推测结果,不确定)。更新这样的底包是有危险的,有可能会造成Bootloader损坏,这个东西损坏了,基本就是变砖了,真正的变砖,只能花钱去修了。只有这个东西没坏,就不是砖。②我们通常所说的刷机ROM实际是升级包,升级包是对应于特定的底包制作的,所以刷机时务必确保使用的底包和升级包版本上保持一致。③需要注意版本号的还有:Bootloader版本、基带版本、Recovery版本 ④目前有些OpenRecovery工具支持底包、升级包一起从SD卡读取刷入⑤似乎刷机前确保系统干净整洁是很重要的,很多教程提到要通过 WIPE - 刷底包的步骤来确保刷机前的干净,实际上如果底包版本没有变化,刷底包似乎、也许、大概、可能是不必要的。 2.系统结构及文件简单剖析: 一个常见的自制ROM根目录会有以下几个文件夹及文件: data,META-IN,system,boot.img(锁了BL的可以无视这个,但制作时需要它,打包时把它拿出来。) 系统目录说明 ①应用程序安装目录 1) 系统应用程序所在目录/system/app/*.apk 2)用户安装应用程序所在目录/data/app/*.apk 3) 注意:a)在模拟器中,每重启一次,/system/app/下的应用都会被还原,有时/data/app下也会被清除 b)若在/system/app和/data/app下有重名的应用,不一定会启动哪一个,尤其是在adb install杀死正在运行的程序时,有时旧的就会被启动 ②.用户数据所在目录 /data/data/应用包名/shared_prefs配置文件 /data/data/应用包名/databases/*库文件所在目录 ③. SD卡对应目录/sdcard/ 而我们需要处理的只是两个文件夹里面的内容: data/app ——该文件夹里的文件可以全删,也可以自由添加自已所需安装的应用软件,刷机安装后可以自由删除。 system/app ——在这个文件夹下的程序为系统默认的组件,可以看到都是以APK格式结尾的文件,但有些系统自带的ROM里面还有和APK文件名对应的odex文件。我们主要是针对该文件夹里的文件进行精简,如果有odex文件的,删除APK文件名时同时也删除与其对应的odex文件。虽然一般定制时只是对以上两个文件夹里的文件做相应的增减,但我们还是一起来了解system相应目录常见相应文件的用途吧。rom版本不同,里面的APK也会不一样,其它文件夹下需要改动的较少,或者不需要改动。但app文件下是制作时的重点,所以详细列出: [url=file://system/app]\\system\\app[/url] [url=file://system/app/AlarmClock.apk]\\system\\app\\AlarmClock.apk[/url] 闹钟 [url=file://system/app/Browser.apk]\\system\\app\\Browser.apk[/url] 浏览器 [url=file://system/app/Bugreport.apk]\\system\\app\\Bugreport.apk[/url] Bug报告 \\system\\app\\Calculator.apk 计算器 \system\app\Calendar.apk 日历 \\system\\app\\CalendarProvider.apk 日历提供 \\system\\app\\Camera.apk 照相机 \\system\\app\\Contacts.apk 联系人 \\system\\app\\DownloadProvider.apk 下载提供 \\system\\app\\DrmProvider.apk DRM数字版权提供 \\system\\app\\Email.apk 电子邮件客户端 \\system\\app\\FieldTest.apk 测试程序 \\system\\app\\GDataFeedsProvider.apk GoogleData提供 \\system\\app\\Gmail.apk Gmail电子邮件 \\system\\app\\GmailProvider.apk Gmail提供 \\system\\app\\GoogleApps.apk 谷歌程序包 \\system\\app\\GoogleSearch.apk 搜索工具 \\system\\app\\gtalkservice.apk GTalk服务 \\system\\app\\HTMLViewer.apk HTML查看器 \\system\\app\\HtcTwitter.apk 集成Twitter客户端PEEP \\system\\app\\IM.apk 即使通讯组件包含MSN、yahoo通 \\system\\app\\Launcher.apk 启动加载器 \\system\\app\\Maps.apk 电子地图 \\system\\app\\MediaProvider.apk 多媒体播放提供 \\system\\app\\Mms.apk 短信、彩信 \\system\\app\\Music.apk 音乐播放器 \\system\\app\\PackageInstaller.apk apk安装程序 \\system\\app\\Phone.apk 电话拨号器 \\system\\app\\Settings.apk 系统设置 \\system\\app\\SettingsProvider.apk 设置提供 \\system\\app\\SetupWizard.apk 设置向导 \\system\\app\\SoundRecorder.apk 录音工具 \\system\\app\\Street.apk 街景地图 \\system\\app\\Sync.apk 同步程序 \\system\\app\\Talk.apk 语音程序 \\system\\app\\TelephonyProvider.apk 电话提供 \\system\\app\\Updater.apk 更新程序 \\system\\app\\***Services.apk ***服务 \\system\\app\\Vending.apk 制造商信息 \\system\\app\\VoiceDialer.apk 语音拨号器 \\system\\app\\VoiceSearch.apk 语音搜索 app文件夹内放的就是内置软件,有不想要的,直接删除之。请在删除之前先弄清楚它能不能删除。有些官方内置的软件,删除了ROM就废了。当然,你也可以在没弄清楚的情况下乱删一气,只要在刷机完发现问题之后,把删除的软件,一个个放回去排查,刷个十遍八遍,大约也就搞定了。所以我们要佩服那么敢于探索的先驱,不容易啊。 fonts文件夹放的是手机的字体,如果没有美术细胞的人就不要乱改,改字体有时候会死人的,刺眼、字形不协调、大小不一致等等诸如此类。要改也刷机完以后再改。具体方法要参见自己区的人发的帖子。 lib文件夹顾名思义,是内置软件的库文件。有些软件需要动态库支持才能正常使用的,比如常见的输入法之类的。所以,如果你向一个原本可以正常使用的ROM中加入了新的软件之后,反而出现 某程序意外关闭 某程序意外结束的情况后,那么基本上就是你忘了把库文件给它移动过去。 bin文件夹中放的是系统内置的工具,像什么busybox,su之类的都在里面,没事不要删除它,可以添加,但不要删除。 etc文件夹中放置的是系统的设置,诸如无线、GPS、DHCP、拨号、APN列表之类的设置。这个目录中,如果你改了重要的CONF文件,则可能系统出问题。也可以改一部分不重要的东西(比如说APN列表)而不出现问题,但貌似APN列表没必要改。 framework目录就是系统的UI了,想改界面的人应该改这个目录中的文件。。大约也就是替换一些什么图片,换掉界面框架什么的,改改字体颜色什么的?以达到改换界面的目的。 media目录是系统内置的媒体文件,如开机音乐,内置的通话铃声、信息铃声、闹钟铃声,可以改,但格式是OGG的,可以自己去搜索如何换格式。 usr目录是系统的部分使用配置,包括键盘映射表什么的,没事不要改。。。 xbin目录,好吧,这个目录可以放一些工具,而且貌似官方本身在里面放了一个tcpdump,是截获网络数据包的。没试过删除它,推荐有冒险精神的可以删除之,再将结果告诉我们。 system:系统分区.我们刷机器一般就是刷的这个分区. userdata:数据分区. cache:缓存分区 recovery:Recovery分区,相当于建立在hboot与android系统间的一个中间层,如名字一般,主要用于系统调试和恢复。. boot:存放内核和ramdisk的分区. hboot:这个是SPL所在的分区,即 bootloader splash1:这个就是开机第一屏幕了. radio:这个是无线所在的分区,即基带所在分区。 misc:其他分区 3.创建一个刷机包,update-script脚本语法说明 ①简单举例:创建一个update.zip文件是很简单的事情,你所需要做的就是将文件放置到与Android文件系统中相对应的文件夹中,然后编写一个用来复制这些文件到手机对应位置的update-script, 文件。作为举例,比如安装Calculator.apk到system/app文件夹,复制libsec-ril.so文件到system/lib文件夹:新建一个空文件夹(本文例:G:\android)新建用来放置Calculator.apk的文件夹C:\android\system\app以及用来放置libsec-ril.so的文件夹G:\android\system\lib。创建用来放置update-script文件的文件夹G:\android\META-INF\com\google\android。 创建一个名为updater-script的文件,其内容如下: 1.show_progress 0.1 0 2. 3.copy_dir PACKAGE:systemSYSTEM: 4. 5.show_progress 0.1 10 6. 行1和行5:显示进度条 行3:复制刷机包中的system文件夹到Android的/system 注意:你应该在文件的最末尾多添加一个空行(也就是行6)将C:\android压缩中的所有内容压缩为zip包(千万记住:是压缩android这个文件夹中的内容,不是android文件夹本身)为android.zip签名 ②基础语法篇 1.copy_dir 语法:copy_dir [] 表示原文件夹,表示目的文件夹,[]表示时间戳 作用:将文件夹中的内容复制到文件夹中。文件夹中的原始内容将会保存不变,除非文件夹中有相同的内容,这样中的内容将被覆盖 举例:copy_dir PACKAGE:system SYSTEM:(将升级包中的system文件夹复制到手机中) 2.format 语法:format 表示要格式化的分区 作用:格式化一个分区 举例:format SYSTEM:(将手机/system分区完全格式化) 注意:格式化之后的数据是不可以恢复的 3.delete 语法:delete [... ] [... ]表示要格式化的文件,可以是多个文件用空格隔开 作用:删除文件1,2到n 举例:delete SYSTEM:app/Calculator.apk(删除手机systen文件夹中app中的Calculator.apk文件) 4.delete_recursive 语法:delete_recursive [... ] [... ]表示要删除的文件或文件夹,可以使多个,中间用空格隔开 作用:删除文件或者目录,删除目录时会将目录中的所有内容全部删除 举例:delete_recursive DATA:dalvik-cache(删除/data/dalvik-cache文件夹下的所有内容) 5.run_program 语法:run_program [ ...] 表示要运行的程序,[ ...]表示运行程序所加的参数 作用:运行终端程序 举例:run_program PACKAGE:install_busybox.sh(执行升级包中的install_busybox.sh脚本) 6.set_perm 语法:set_perm [...] 表示用户名称,表示用户组名称,,表示权限模式, [... ]表示文件路径,可以使多个,用空格隔开 作用:设置单个文件或目录的所有者和权限,像linux中的chmod、chown或chgrp命令一样,只是集中在了一个命令当中 举例:set_perm 0 2000 0550 SYSTEM:etc/init.goldfish.sh(设置手机system中的etc/init.goldfish.sh的用户为root,用户组为shell,所有者以及所属用户组成员可以进行读取和执行操作,其他用户无操作权限) 7.set_perm_recursive 语法:set_perm_recursive [... ] 表示用户,表示用户组,表示文件夹的权限,表示文件的权限, [... ]表示文件夹的路径,可以多个,用空格分开 作用:设置文件夹及文件夹中的文件的所有者和用户组 举例:set_perm_recursive 0 0 0755 0644 SYSTEM:app(设置手机system/app文件夹及其中文件的用户为root,用户组为root,app文件夹权限为所有者可以进行读、写、执行操作,其他用户可以进行读取和执行操作,其中的文件的权限为所有者可以进行读写操作,其他用户可以进行读取操作) rwx 对应421 R读权限 w写权限 x执行权限 5代表R+X,6代表R+W,7代表R+W+X。一般系统文件常见的权限是644。 8.show_progress 语法:show_progress <表示一个小部分> <表示一个小部分的持续时间> 作用:为下面进行的程序操作显示进度条,进度条会根据进行前进,当操作时间是确定的时候会更快 举例:show_progress 0.1 0(显示进度条当操作完成后前进10%) 9.symlink 语法:symlink 表示链接到的目标,表示快捷方式的路径 作用:相当于linux中的ln命令,将处创建一个软链接,的格式应为绝对路径(或许相对路径也可以),为“根目录:路径”的形式 举例:symlink /system/bin/su SYSTEM:xbin/su(在手机中system中的xbin中建立一个/system/bin/su的快捷方式) 10.assert 语法:assert 作用:此命令用来判断表达式boolexpr的正确与否,当表达式错误时程序终止执行※此作用有待验证 11.package_extract_file/dir语法:package_extract_file(file/dir,file/dir) 作用:提取包中文件/路径 举例:package_extract_dir("system", "/system"); package_extract_file("system/bin/modelid_cfg.sh","/tmp/modelid_cfg.sh"); 12.write_radio_image 语法:write_radio_image 作用:将基带部分的镜像写入手机,表示镜像文件 举例:write_radio_imagePACKAGE:radio.img 13.write_hboot_image 语法:write_hboot_image 作用:将系统bootloader镜像写入手机,表示镜像位置,此命令在直到在所有的程序安装结束之后才会起作用 举例:write_hboot_imagePACKAGE:hboot.img 14.write_raw_image语法:write_raw_image 作用:将boot.img写入手机,里面包含了内核和ram盘 举例:write_raw_image PACKAGE:boot.img BOOT: ③.根目录以及分区的定义(在Android源代码的root.c文件中定义) 根目录: Linux 块设备 /挂载点/ 文件系统 大小 描述 BOOT: /dev/mtdblock[?] / (RAM) Raw 内核、内存盘和引导配置。 DATA: /dev/mtdblock5 /data/ yaffs2 91904kb 用户、系统配置,软件配置以及软件(没有a2sd的话) CACHE: /dev/mtdblock4 /cache/ yaffs2 30720kb OTA缓存,recovery/更新配置及临时文件夹 MISC: /dev/mtdblock[?] N/A Raw,[?]kb (等待添加) PACKAGE: (相对于刷机包) N/A 刷机包的伪文件系统。 RECOVERY: /dev/mtdblock[?] / (RAM) Raw,[?]kb recovery和更新环境的内核和内存盘。类似于BOOT:。 SDCARD: /dev/mmcblk0(p1) /sdcard/ fat32 32MB-32GB TF卡。通常刷机包就放在这里。 SYSTEM: /dev/mtdblock3 /system/ yaffs2 92160kb 系统分区,静态且是只读的。 TMP: /tmp/ (RAM) 标准的Linux临时文件夹 在关机/重启时清空。 ④.具体实例: 1.assert(getprop("ro.product.device")== "swift" || getprop("ro.build.product") =="swift" || getprop("ro.product.board") =="swift"); 2.package_extract_file("system/bin/backuptool.sh","/tmp/backuptool.sh"); 3.set_perm(0, 0, 0777,"/tmp/backuptool.sh"); 4.run_program("/tmp/backuptool.sh","backup"); 5.show_progress(0.500000,0); 6.format("yaffs2","MTD", "system"); 7.mount("yaffs2","MTD", "system", "/system"); 8.package_extract_dir("recovery","/system"); 9.package_extract_dir("system","/system"); 10.symlink("busybox","/system/xbin/[", "/system/xbin/[[", 11."/system/xbin/arp", "/system/xbin/ash","/system/xbin/awk", 12."/system/xbin/basename", "/system/xbin/bbconfig","/system/xbin/brctl", 13."/system/xbin/bunzip2","/system/xbin/bzcat", "/system/xbin/bzip2", 14."/system/xbin/cal", "/system/xbin/cat","/system/xbin/catv", 15."/system/xbin/chgrp","/system/xbin/chmod", "/system/xbin/chown", 16."/system/xbin/chroot","/system/xbin/cksum", "/system/xbin/clear", 17."/system/xbin/cmp", "/system/xbin/cp","/system/xbin/cpio", 18."/system/xbin/cut", "/system/xbin/date","/system/xbin/dc", 19."/system/xbin/dd", "/system/xbin/depmod","/system/xbin/devmem", 20."/system/xbin/df", "/system/xbin/diff","/system/xbin/dirname", 21."/system/xbin/dmesg","/system/xbin/dnsd", "/system/xbin/dos2unix", 22."/system/xbin/du", "/system/xbin/echo","/system/xbin/ed", 23."/system/xbin/egrep", "/system/xbin/env","/system/xbin/expr", 24."/system/xbin/false","/system/xbin/fdisk", "/system/xbin/fgrep", 25."/system/xbin/find", "/system/xbin/fold","/system/xbin/free", 26."/system/xbin/freeramdisk", "/system/xbin/fuser","/system/xbin/getopt", 27."/system/xbin/grep","/system/xbin/gunzip", "/system/xbin/gzip", 28."/system/xbin/head","/system/xbin/hexdump", "/system/xbin/id", 29."/system/xbin/ifconfig","/system/xbin/insmod", "/system/xbin/install", 30."/system/xbin/ip", "/system/xbin/kill","/system/xbin/killall", 31."/system/xbin/killall5","/system/xbin/length", "/system/xbin/less", 32."/system/xbin/ln","/system/xbin/losetup", "/system/xbin/ls", 33."/system/xbin/lsmod", "/system/xbin/lspci","/system/xbin/lsusb", 34."/system/xbin/lzop","/system/xbin/lzopcat", "/system/xbin/md5sum", 35."/system/xbin/mkdir","/system/xbin/mke2fs", "/system/xbin/mkfifo", 36."/system/xbin/mkfs.ext2","/system/xbin/mknod", "/system/xbin/mkswap", 37."/system/xbin/mktemp","/system/xbin/modprobe", "/system/xbin/more", 38."/system/xbin/mount","/system/xbin/mountpoint", "/system/xbin/mv", 39."/system/xbin/netstat","/system/xbin/nice", "/system/xbin/nohup", 40."/system/xbin/nslookup","/system/xbin/ntpd", "/system/xbin/od", 41."/system/xbin/patch","/system/xbin/pgrep", "/system/xbin/pidof", 42."/system/xbin/ping","/system/xbin/pkill", "/system/xbin/printenv", 43."/system/xbin/printf", "/system/xbin/ps","/system/xbin/pwd", 44."/system/xbin/rdev","/system/xbin/readlink", "/system/xbin/realpath", 45."/system/xbin/renice","/system/xbin/reset", "/system/xbin/rm", 46."/system/xbin/rmdir","/system/xbin/rmmod", "/system/xbin/route", 47."/system/xbin/run-parts","/system/xbin/sed", "/system/xbin/seq", 48."/system/xbin/setsid", "/system/xbin/sh","/system/xbin/sha1sum", 49."/system/xbin/sha256sum","/system/xbin/sha512sum", 50."/system/xbin/sleep", "/system/xbin/sort","/system/xbin/split", 51."/system/xbin/stat","/system/xbin/strings", "/system/xbin/stty", 52."/system/xbin/swapoff","/system/xbin/swapon", "/system/xbin/sync", 53."/system/xbin/sysctl","/system/xbin/tac", "/system/xbin/tail", 54."/system/xbin/tar", "/system/xbin/tee","/system/xbin/telnet", 55."/system/xbin/test", "/system/xbin/tftp","/system/xbin/time", 56."/system/xbin/top", "/system/xbin/touch","/system/xbin/tr", 57."/system/xbin/traceroute", "/system/xbin/true","/system/xbin/tty", 58."/system/xbin/tune2fs","/system/xbin/umount", "/system/xbin/uname", 59."/system/xbin/uniq","/system/xbin/unix2dos", "/system/xbin/unlzop", 60."/system/xbin/unzip","/system/xbin/uptime", "/system/xbin/usleep", 61."/system/xbin/uudecode","/system/xbin/uuencode", "/system/xbin/vi", 62."/system/xbin/watch", "/system/xbin/wc","/system/xbin/wget", 63."/system/xbin/which","/system/xbin/whoami", "/system/xbin/xargs", 64."/system/xbin/yes", 65."/system/xbin/zcat"); 66.symlink("iwmulticall","/system/xbin/iwconfig", "/system/xbin/iwgetid", 67."/system/xbin/iwlist","/system/xbin/iwpriv", 68."/system/xbin/iwspy"); 69.symlink("toolbox","/system/bin/cat", "/system/bin/cmp", 70."/system/bin/date", "/system/bin/dd","/system/bin/dmesg", 71."/system/bin/getevent","/system/bin/getprop", "/system/bin/hd", 72."/system/bin/id", "/system/bin/ifconfig","/system/bin/iftop", 73."/system/bin/insmod","/system/bin/ioctl", "/system/bin/ionice", 74."/system/bin/kill", "/system/bin/log","/system/bin/lsmod", 75."/system/bin/mkdir","/system/bin/nandread", "/system/bin/netstat", 76."/system/bin/newfs_msdos","/system/bin/notify", "/system/bin/printenv", 77."/system/bin/ps","/system/bin/reboot", "/system/bin/renice", 78."/system/bin/rmdir", "/system/bin/rmmod","/system/bin/route", 79."/system/bin/schedtop","/system/bin/sendevent", 80."/system/bin/setconsole","/system/bin/setprop", "/system/bin/sleep", 81."/system/bin/smd", "/system/bin/start","/system/bin/stop", 82."/system/bin/sync", "/system/bin/top","/system/bin/uptime", 83."/system/bin/vmstat","/system/bin/watchprops", 84."/system/bin/wipe"); 85.set_perm_recursive(0,0, 0755, 0644, "/system"); 86.set_perm_recursive(0,2000, 0755, 0755, "/system/bin"); 87.set_perm(0, 3003,02750, "/system/bin/netcfg"); 88.set_perm(0, 3004,02755, "/system/bin/ping"); 89.set_perm(0, 2000,06750, "/system/bin/run-as"); 90.set_perm_recursive(1002,1002, 0755, 0440, "/system/etc/bluetooth"); 91.set_perm(0, 0, 0755,"/system/etc/bluetooth"); 92.set_perm(1000, 1000,0640, "/system/etc/bluetooth/auto_pairing.conf"); 93.set_perm(3002, 3002,0444, "/system/etc/bluetooth/blacklist.conf"); 94.set_perm(1002, 1002,0440, "/system/etc/dbus.conf"); 95.set_perm(1014, 2000,0550, "/system/etc/dhcpcd/dhcpcd-run-hooks"); 96.set_perm_recursive(0,2000, 0755, 0750, "/system/etc/init.d"); 97.set_perm(0, 0, 0755,"/system/etc/init.d"); 98.set_perm(0, 2000, 0550,"/system/etc/init.goldfish.sh"); 99.set_perm(0, 0, 0544,"/system/etc/install-recovery.sh"); 100.set_perm_recursive(0,0, 0755, 0555, "/system/etc/ppp"); 101.set_perm_recursive(0,2000, 0755, 0755, "/system/xbin"); 102.set_perm(0, 0, 06755,"/system/xbin/hcitool"); 103.set_perm(0, 0, 06755,"/system/xbin/librank"); 104.set_perm(0, 0, 06755,"/system/xbin/procmem"); 105.set_perm(0, 0, 06755,"/system/xbin/procrank"); 106.set_perm(0, 0, 06755,"/system/xbin/su"); 107.set_perm(0, 0, 06755,"/system/xbin/tcpdump"); 108.show_progress(0.200000,0); 109.show_progress(0.200000,10); 110.package_extract_file("system/bin/backuptool.sh","/tmp/backuptool.sh"); 111.set_perm(0, 0, 0777,"/tmp/backuptool.sh"); 112.run_program("/tmp/backuptool.sh","restore"); 113.package_extract_file("system/bin/modelid_cfg.sh","/tmp/modelid_cfg.sh"); 114.set_perm(0, 0, 0777, "/tmp/modelid_cfg.sh"); 115.run_program("/tmp/modelid_cfg.sh"); 116.package_extract_file("system/bin/verify_cache_partition_size.sh","/tmp/verify_cache_partition_size.sh"); 117.set_perm(0, 0, 0777,"/tmp/verify_cache_partition_size.sh"); 118.run_program("/tmp/verify_cache_partition_size.sh"); 119.show_progress(0.200000,10); 120.assert(package_extract_file("boot.img","/tmp/boot.img"), 121.write_raw_image("/tmp/boot.img", "boot"), 122.delete("/tmp/boot.img")); 123.show_progress(0.100000,0); 124.unmount("/system"); 125. 4.BL————手机爱好者心中最大的痛 Bootloader从字面上来看就是启动加载的意思。用过电脑的都知道,windows开机时会首先加载bios,然后是系统内核,最后启动完毕。那么bootloader就相当于手机的bios,它在手机启动的时候根据基带初始化硬件,然后引导系统内核,直到系统启动。因此可以看出,bootloader很重要,如果bootloader不能正常加载,手机就是砖头一个,无法正常启动和使用。这也就是为什么bootloader被锁的手机必须要破解才能刷第三方rom。如果不破解bootloader,就无法初始化手机硬件,手机也就无法使用。 先思考一下大家为什么想要解锁bootloader?肯定都是因为想要刷各种各样的第三方rom。为什么大家想要第三方的rom呢? 一是因为官方的rom更新慢,并且官方的rom里面有各种各样运营商集成的软件。而第三方rom是根据google官方的rom源码重新打包编译的,也就是所谓的原生系统,很干净。这样很多用户都会选择第三方rom,这就损害了运营商的利益,这是摩托罗拉不愿意看到的 二是因为摩托罗拉官方的rom集成了摩托罗拉自己的BLUR服务,主要是一些社交服务,国外的facebook、twitter等,国内的人人,新浪等。相信很多人都是用不到这些的,这些人也会选择第三方rom,这也是摩托罗拉不愿意看到的。 摩托罗拉不愿意看到上面的情况发生,但偏偏安卓系统又是开源的,必须要公布源代码,无奈的摩托罗拉只好另辟蹊径,于是就有了锁bootloader。内核开源,但bootloader不需要开源,加密bootloader是合理的。于是摩托罗拉锁了bootloader并且给内核做了文件签名,只有签名通过的内核才能被bootloader识别。这样一个bootloader锁诞生了。 bootloader锁直接导致摩托罗拉的手机无法使用各种第三方的rom,于是很多国外的高手开始破解bootloader。前一段有一个传闻说bootloader被破解了,但是被摩托罗拉官方发了律师函,于是便不了了之。这也正是摩托罗拉bootloader一直无法破解的原因,一是很难破解,二是高手们怕惹祸烧身。 现在有消息说,官方会今年晚些时候会为手机解锁bootloader,算是一个值得期待的好消息,各位摩托罗拉用户可以耐心等待一下,不用着急。 最后,送给摩托罗拉官方一句话:解锁Bootloader—摩托罗拉用户的心声 。在这个用户至上的社会,千万不要因为一点小利益而忽略了用户,这注定会失败,无论你是一个多么老多么大的品牌厂商。 在刷机过程中未停电且未断开数据线的情况下,开不了机普遍有两种可能。 ①boot.img是加过密的。就是锁了bl。各个手机制造商在做ROM的时候,以他们独自的加密算法,对整个文件进行CRC验算,然后将验算值添加到boot.img的最末尾。刷机的时候,手机的硬件BIOS就像一名尽职的士兵,对此进行验算,对不上口令的,那么对不起,请君离开,不离开我报警了~~呃,报不了警,那反正我不让你进门~~ ②boot.img还有一个重要的参数,基址 base,用于告诉手机从哪个地址开始,是准备给内存盘的入口,哪个地址是给kernel的入口。如果你对不上号,对不起,不能非法入室的。 5.摩托常见刷机方法: 例如:Milestone2系统备份+恢复+ZIP格式的刷机包+镜像文件刷机包的方法,非常适合经常刷机,DIY刷机包的童鞋们使用。先备份好系统后,不管你把ROM弄得怎么个乱,怎么个精减。出问题了直接恢复备份好的系统就是你完美的包包了。省去你重新刷机,重新精减,重装软件的麻烦事情。 ①备份Milestone2系统的方法: Milestone2必须要ROOT过,获得权限。 a.按装恢复模式工具Droid2Boot 3.0 中文版 HYPERLINK "http://bbs.gfan.com/attachment.php?aid=MTQ5MDI5N3w5MTBjYjJmZHwxMzI0NDM3MzU0fDZlOTJ
本文档为【ROM简单制作教程】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_605601
暂无简介~
格式:doc
大小:433KB
软件:Word
页数:41
分类:互联网
上传时间:2011-12-28
浏览量:53