安卓刷机包 各个文件夹的作用


META-INF
这里面主要是签名文名和刷机时执行的脚本(updater-script),移植时,我们主要要更改的就是刷机的脚本。

system
这里面就是android的系统部分

app
这里存放的是系统的app,每个app都有两个文件,一个*.apk,一个*.odex,我们在移植时,要将这个文件合并到对应的*.apk里面去,apk文件其实就是一个zip文件,可以用WinRAR或7zip打开的,当然,合并odex文件不是把它改名直接放到apk里去这么简单的,后面具体介绍一下。还有,这个文件夹里面的程序,刷完以后是不能通过程序管理来卸载的。

bin
这里面存放的是native程序,不好意思,一下子忘掉中文怎么说了。简单来说,apk是JAVA程序,而这个是C/C++的程序。

etc
这里面存放的是系统默认的配置文件,GPS的配置也在这里

fonts
这个是字体文件夹,一般很少改动, 除非要做美化

framework
这里存放的是android框架,移植MIUI,很多改动在这个文件夹里,美化ROM的话, 主要改framework-res.apk就可以了。当然,MIUI本身就有主题机制了,不用这么麻烦去改。这个文件夹里也会有对应的odex文件。

lib
一些通过的类库,一般是由app/bin里面的程序调用的。


media
媒体文件,要添加系统默认的铃声就在这里了。如果是别的ROM的话, 壁纸也会放在这里面

usr
这个文件夹我不知道如何解释,移植时,键盘布局文件就在这里面.

xbin
扩展命令文件夹,一般不动它,有一些ROM可能直接用busybox来替代了。

build.prop
这个文件也类似于一个配置文件,它主是描述了这个ROM的版本,对应的机型名称,还会有部分的硬件配置,移植的时候我们也会要修改这个文件。

boot.img
系统核心,其实就是Linux内核部分,这个img也是可以解开来定制的,但我没有试过。如果你喜欢新的核心的话,可以将这个文件替换掉,不过要兼容才行。

 


移植步骤:
下载完ROM以后,用解压工具解压到一个目录,先将odex合并到apk文件中去,这里要用到工具,有两个工具可以用:
xUltimate: http://www.droidforums.net/forum ... ease-xultimate.html

合并的方法比较简单,以xUltimate为例,将app里面的所有文件拷到origi_app里面,将framework里面的所有文件拷到origi_frame里面,再运行程序,再过几个选项就可以进行转换了,转换好会放到另一个文件夹里面,把原来的文件删掉,把生成的放回去就可以了。如果转换过程中失败了,应该是JAVA的版本低了,升级到最新的JRE试一下。

如果用Droid Builder合并的话,稍微简单一点,选择ROM的文件夹,点Deodex就可以进行合并了。
删除APP2SD相关的文件,这好像成了传统,从n_i_x开始移植MIUI开始,一直都这样,我也没试过保留这个会怎么样。要删除的文件是固定的,大家可以用下面这个脚本:

del bin\a2sd /s /q
del bin\apps2sd /s /q
del bin\apps2sd.hlp /s /q
del bin\boota2sd /s /q
del bin\busybox.a2sd /s /q
del bin\chka2sd /s /q
del bin\fixa2sd /s /q
del bin\jita2sd /s /q
del bin\launcha2sd /s /q
del bin\starta2sd /s /q

del etc\init.d\04apps2sd /s /q

del xbin\a2sd /s /q
del xbin\apps2sd /s /q


大家要注意的是APP2SD和A2SD+是两个概念,大家可以自己去搜一下,如果大家有兴趣,可以研究一下Incredible的A2SD+和DATA2SD+,这样可以提高I/O速度。
替换Incredible专用的文件,一般我们下载的MIUI ROM都是Desire或N1的,我们下载了以后,要先把Incredible专用的文件替换进去:boot.img
这个前面介绍过了。这个可以从安智论坛的ROM中拿,也可以自己下载CyanogenMod的Incredible ROM中提取。也可以到XDA上面下载新的AOSP核心。

bin/vold
这个文件是解决内部存储(EMMC)的一部分,Incredible的内存分成了几个分区,前面两个是data和cache,第三个就是EMMC,早期的vold代码在挂载一个挂载点的时候,是以磁盘为单位的,而不是以分区为单位,CM最新的代码解决了这个问题, 大家自己编译或从新的ROM里拿就可以了。

etc/firmware
这整个文件夹都可以替换掉(注意,是etc下面的firmware)

etc/AdieHWCodecSetting.csv
这个要加进去,音频解码相关

etc/agps_rm
这个可以不用加,空文件,不知道有何用。为何险,可以加一下。

etc/AudioBTID.csv
音频相关,替换掉

etc/gps.conf
GPS的配置,可以自己去搜一下,了解如何改后,可以自己动手改一下

etc/TPA2018.csv
加进去,不知道何用。

etc/vold.fstab
分区表,必须替换,解决EMMC的另一步, 之后还有一步,

lib/hw/lights.inc.so, lib/hw/sensors.inc.so
删掉lights.bravo.so和sensors.bravo.so替换成这两个。

lib/modules/bcm4329.ko
WIFI驱动,替换掉。

lib/liblog.so
打LOG用的,替换掉,不然,出错了,没法查LOG,不看LOG的同学可以不用换。

usr/keychars/incrediblec-keypad.kcm.bin
删掉bravo-keypad.kcm.bin,替换成这个。这是个二进制文件,虽然我每次都替换了,但我从LOG来分析,这个文件一直没起到作用,我看了很多Incredible的ROM,也包括官方的,这个文件一直没变过,真是奇怪。

usr/keylayout/incrediblec-keypad.kl
删掉bravo-keypad.kl,替换成这个。这个是Incredible的键盘布局配置。
到此为止,简单的工作都做完了。下面要开始修改文件了。

修改刷机脚本
这个比较简单,一般只要修改前面几行,把条件改一下,再加一段欢迎词,请对照我提供的文件进行修改。修改build.prop
请对照我提供的文件进行修改,请注意一下,里面所有ro.cdma的都是需要的,有一行:ro.cdma.home.operator.alpha=中国电信
有些编辑器可能会显示成乱码,如果不行,用记事本修改好了。
还有内部存储相关的两条配置也别忘了:
ro.phone_storage = 1
ro.additionalmounts=/mnt/emmc

做完了以上的步骤,Incredible的移植算完成了大部分了,已经可以做成刷机包试一下了,但还有几个问题没有解决:
内部存储EMMC支持还差一步通知栏上面不会显示中国电信,还会显示漫游图标图库和音乐播放器不支持内部存储
这几个问题不能光靠替换文件来完成,需要多做一些事情。我们要使用几个工具来帮助我们来解决这几个问题。

解决内部存储问题  
前面说过,MIUI基于早期的CM,MountService这个类不支持Incredible的内部存储,我们要替换成CM的MountService代码,因为代码都已经编译了,所以,我们要先进行反编译。要用到baksmali工具,可以用我附件提供的工具包中的脚本。
先用解压工具打开framework/services.jar,不用解压,直接将classes.dex拖到工具包的文件夹中再拖动classes.dex到"解包dex.bat"上面,过一会儿,就会生成一个out文件夹将out文件夹重命名,随便啥名都可以,比如services.miui用解压工具打开我之前ROM里面services.jar,也用同样的方法解包dex同样将out文件夹重命名,比如services.cm打开services.cm/smali/com/android/server,在这个文件夹里面找到所有以MountService开头的文件,拷贝并替换services.miui里面相应的文件完成替换后,将services.miui拖动到"打包dex.bat"上面,会生成一个out.dex的文件将out.dex重命名成classes.dex,直接替换framework/services.jar里面的文件就可以了,不用重新签名这样,MountService的替换就完成了

一个问题需要说明一下,一定要用我的ROM里面的services.jar,不能用CM的。我基于CM的代码做了一点修改,解决内部存储挂载的时候主界面FC的问题,具体的改动,改天我再写一往篇来说明吧,其实,一共就改三行代码。
解决漫游图标的问题 这个问题比较好解决,用解压工具打开我的ROM里面的framework/framework-res.apk,找到res/xml/eri.xml文件,替换掉MIUI里面的就可以了。也不用重新签名。eri.xml文件是经过加密的。原文是:

<?xml version="1.0" encoding="UTF-8"?>
<EriFile VersionNumber="1357" NumberOfEriEntries="1" EriFileType="1">
<CallPromptId Id="0" CallPromptText="CallPromptId0" />
<CallPromptId Id="1" CallPromptText="CallPromptId1" />
<CallPromptId Id="2" CallPromptText="CallPromptId2" />
<EriXXX RoamingIndicator="128" IconIndex="1" IconMode="0" EriText="中国电信" CallPromptId="0" AlertId="0" />
</EriFile>

解决图库和音乐对内部存储的支持
跟解决MountService的方法类似,要替换app/MediaProvider.apk里面的MediaScannerReceiver和MediaScannerService开头的文件,这个可以用我或者是CM里面的替换都可以。更简单的方法,直接替换MediaProvider.apk文件也是可以的。因为最近这个apk好像都没有改动。

   这样,我们的移植就算完成了,接下来就是生成ROM了,我们用压缩工具将ROM打包成zip格式,注意目录结构,生成的zip根目录就有MATE-INF和system,别搞错了。将打包好的zip文件拷到工具包当中,改成update.zip,再双击sign.bat进行签名,签名后就生成了update_signed.zip了。
移植MIUI基本都是大同小异。
把签名后的ROM拷到卡上刷机吧~~

 

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kindle安卓刷机是用于刷写Kindle阅读器硬件上的操作系统的一种工具。刷机通常由开发者或团队开发,旨在为用户提供更多的自定义选项和功能。通过刷机,用户可以更改或替换原始的Kindle操作系统,以实现不同的操作和体验。 安卓刷机可以将Kindle设备从原始的亚马逊定制操作系统转换为基于安卓系统的定制操作系统。这意味着用户可以享受到更多的应用程序选择、自定义设置、个性化主题和其他扩展功能。比如,用户可以安装各种第三方应用程序,如电子邮件客户端、音乐播放器、游戏和社交媒体应用程序等。用户还可以自定义Kindle设备的界面、布局和外观。 要使用Kindle安卓刷机,用户需要首先解锁Kindle设备的引导程序,然后在设备上安装一个定制的恢复模式。接下来,用户可以通过连接设备和电脑,将刷机安装到设备上。一旦刷机安装完成,用户就可以享受到新的操作系统和功能。 需要注意的是,刷机可能会导致Kindle设备失去保修或支持服务。此外,刷机过程可能存在风险,可能导致设备出现问题或无法正常工作。因此,在使用Kindle安卓刷机之前,用户应该了解相关风险,并在自己承担风险的情况下进行操作。 总之,Kindle安卓刷机为用户提供了个性化定制Kindle设备的机会,但使用前需要仔细考虑相关的风险和后果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值