手机ROM用什么制作的?比如miui?

手机ROM用什么制作的?比如miui?,第1张

制作想MIUI Flyme一样的深度定制安卓ROM不是一般人能够完成的,这都是要高级程序员才能做到的,需要学习的知识多不胜数。方方面面都有。

ROM (刷机所用的镜像):

ROM 是 ROM image(只读内存镜像)的简称,常用于手机定制系统玩家的圈子中。 一般手机刷机的过程,就是将只读内存镜像(ROM image)写入只读内存(ROM)的过程。 常见的 ROM image 有 img、zip 等格式,前者通常用 fastboot 程序通过数据线刷入(线刷),后者通常用 recovery 模式从 sd刷入(卡刷),固 img 镜像也被称为线刷包,zip 镜像也被称为卡刷包。 国内的定制系统开发者,经常会陷入自己的产品究竟是应该称为 OS 还是 UI 的争论,为了避免此类争论和表示谦虚,会自称为 ROM。很多定制系统玩家也会统一将定制系统称为 ROM。

如何制作ROM

有点玩机兴趣的android爱好者,应该对custom ROM这种东西都不陌生。我介绍root权限获取的时候,就直接用的MoDaCo Custom ROM作为例子。适用于Hero比较好的ROM还有不少,比如Drizzy’s Custom Hero ROM等等,都可以在XDA上找到。肯定有不少朋友感到很好奇,这些ROM都是怎么做的。考虑到中文社区相关资料比较少,在这里抛砖引玉,大概原理介绍一下。

对于第三方ROM来讲,通常都包括两部分,一个recovery image,一个updatezip。而大多数的第三方ROM的特色,就是加入了很多东西,比如superuser程序来获得root权限,busybox来扩充命令行下的功能,各种各样的配置文件或者小工具,比如默认打开中文locale,等等。这些看似神奇的改动,都是在 updatezip里面搞的,custom recovery image的主要作用就是引导用户的操作,比如让你先备份,再应用updatezip,再重启之类的操作。由于custom recovery image和updatezip的耦合性很小,所以不少custom ROM直接都用同一个custom recovery image,这个好像是出自MoDaCo作者之手。再然后,我之前的文章已经有对 recovery image的简单讲解,所以这里,我主要介绍一下updatezip的制作。

如果我们直接把MoDaCo ROM中的updatezip解包,我们会发现有一个bootimg,一个data文件夹,一个system文件夹,一个META-INF文件夹。这个data文件夹放的是initrc,而本来在系统中,initrc就是在data目录下的。当然,两者的作用不一样,这里的initrc主要作用是开机执行你希望执行的命令,比如MoDaCo的initrc就是install busybox。

而值得详细说明的,就是system文件夹。MoDaCo ROM版本的system下有一系列作者希望放到系统中的工具,对于apk文件,就放到app下,工具就放到bin和xbin下,依此类推。换句话说,system或者data这个目录层次结构是取决于你自己的,你希望放的东西属于什么,应该运行在online系统的什么目录下,updatezip里面就应该是有相应的目录路径,然后东西就放在里面。

具体点,我们现在要依样画葫芦,搞一个新的updatezip,那么第一步就是首先建立一个文件夹

mkdir new-update

好,假设我新updatezip的作用就是预装我自己的一个程序,myapk,那么,我建立对应的子目录

mkdir -p new-update/system/app

cp myapk

这样,system目录就完成了。但是这时,updatezip的目录层次还没完,我们看MoDaCo ROM中的updatezip中有文件夹叫META-INF,这个文件夹很关键,除了根目录下的三个文件外,里面层层目录,就包括了一个文件,叫 update-script,内容如下

show_progress 01 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 02 0

format BOOT:

write_raw_image PACKAGE:bootimg BOOT:

show_progress 02 100

这里面的内容,大部分是针对你要做的修改设置的。比如

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下的内容(就是那个initrc)复制到手机上,然后

format BOOT:

write_raw_image PACKAGE:bootimg BOOT:

刷boot分区。

那我们这里没有这么多新增的东西,应该怎么写呢?

copy_dir PACKAGE:system SYSTEM:

set_perm_recursive 0 0 04755 SYSTEM:app/myapk

就可以了。你当然还可以做一些别的事情,比如加一个FORMAT DATA之类的^_^开个玩笑,千万别这个干,不然你的数据就全没了。

好,那么也就是说,我们要在自己的new-update目录下也建一个/META-INF/com/google/目录,然后把新的update-script扔进去。

完了么?差一点。其实如果你没有别的需求了,那么就完了,可以把下面这一小块跳过。下面这一小块,是关于bootimg的。在如何修改Android系统的Ramdisk以及boot镜像文章中,我们谈到,如果刷boot镜像有问题,就要用别的方法让系统boot我们自己的boot image了,这个别的方法,自然就是用updatezip了。MoDaCo ROM版本的updatezip也包括了一个bootimg,但是如果我们有出于各种需求自己修改的bootimg,自然就可以替换掉原来的了。当然注意,如果加了bootimg,那么update-script里面就不能漏掉

write_raw_image PACKAGE:bootimg BOOT:

这句。

好,到现在,我们的new-update目录下有

/system/app/myapk

/META-INF/com/google/update-script

/META-INF/MANIFESTMF

/META-INF/CERTSF

/META-INF/CERTRSA

bootimg

恩,那么就进入打包阶段。你可能会问,这有什么难的,直接zip一下不就得了。如果要是这么简单就好了,你打包后,必须把你的内容都sign一下,得到相应的cert,才能在fastboot模式中被承认并成功刷机。

在sign你的文件之前,先做这么几件事

打包。进入update文件夹,zip updatezip xxx xxxx xxxx xxxx xxxx。什么意思呢,就是只把你需要的文件打包,不要用/作为参数。而且相对路径最好是在update下面,不要在外面用zip updatezip /update/这种命令打包

去sun网站下载最新的

下载这个文件testsign一定要用JRE16016或者更高,我知道这个有点恶心,但是提供下载的testsighjar就是按照这个版本或者更高编译的,你用老版本就运行不了。

好,下下来以后,执行这个命令

~/jre160_16/bin/java -classpath testsign_path/testsignjar testsign updatezip update-signedzip

稍微讲解一下,java程序是最新jre下的,testsign_path是你放testsignjar的地方,建议放到sdk的tool目录下。update是待sign文件,update-signed是指定的生成文件名。

sign执行完后,用unzip -l看,会发现

/META-INF/MANIFESTMF

/META-INF/CERTSF

/META-INF/CERTRSA

确切的说,是安卓ROM怎么修改。如果是重新制作,简单的说,你需要下载安卓系统源代码,根据你的机型调试驱动,然后编译,最后刷机。

自己做的包可以卡刷,也可以线刷。卡刷包和线刷包可以互转,这方面建议去专业的论坛求助,这里一两句话是说不清楚的。而且根据芯片方案的不同,制作rom包的方式和刷机工具也都不同的。一般来讲,最简单的办法就是用原厂卡刷包修改后卡刷,或用原厂线刷包修改后线刷。品牌机卡刷包修改后要重新刷第三方recovery才能刷进,原厂的recovery一般都是要验证卡刷包签名的。

rom就是以前我们玩游戏的卡带和光盘,包括街机的卡带

dumper从卡带等游戏载体上dump到电脑上以模拟器可认出的文件形式保存,这就是我们常见的游戏rom

汉化的话需要先破解这个rom,然后从里面导出文本,汉化完之后再导回去,很难一下子讲清楚,最好去看看专业模拟网站的一些教程

欢迎分享,转载请注明来源:品搜搜测评网

原文地址:https://pinsoso.cn/shuma/814417.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-08-09
下一篇2023-08-09

随机推荐

  • 我用完妮维雅男士洁面泥 感觉脸特别凉 凉到刺痛 一会就好了 是不是过敏 是的话求解决办法。。。谢谢!

    用完妮维雅男士洁面泥,感觉脸特别凉,凉到刺痛,但一会儿就好了。这种情况可能是因为你对某些成分过敏导致的。虽然我不能确定你是否真的过敏,但你描述的症状和体验与过敏反应相似。妮维雅男士洁面泥是一款受到非常多消费者喜欢和好评的产品,但并不代表每个

    2024-04-15
    49800
  • 伊索芹菜籽精华用法你知道吗?伊索芹菜籽精华保质期是多久?精华怎么样?

    伊索的芹菜籽精华其实是一款非常好用的精华,但是很多人因为方法不对而没有好好利用。下面小编就来教大家这款芹菜籽精华的正确用法。伊索芹菜籽精华的用法?伊索种子精华的使用真的是良莠不齐,两极分化。其实这个精华真的很好用。很多人其实用错了方法,所以

    2024-04-15
    38900
  • 露伊薇丹白金套盒怎么样好不好用

    比较好用。露伊薇丹白金套盒采用贵重的白金粉末作为主要成分,同时还含有丰富的多肽、胶原蛋白、海洋活性物质等丰富的保养成分。这些精华成分均富含小分子活性物质,可以深层渗透肌肤,保护肌肤,增强肌肤弹性,提升皮肤保水能力。这套化妆品价格是300多,

    2024-04-15
    40100
  • 四款美白身体乳分享,温和不刺激,让你瞬间白一个度!

    今天给大家分享四款美白身体乳,让大家在夏天来临之前,都变得白白嫩嫩的,爱美的小仙女必备哦!妮维雅美白身体乳德国经典护肤品牌,偶然间撸了这一瓶美白身体乳,涂了大半个月,突然发现自己的手臂变的好白,首先要说下我是一个体毛比较旺盛的女生,小时候不

    2024-04-15
    29800
  • 川奈之汀护肤品怎么样

    挺好的。1、川奈之汀护肤品采用纯天然植物成份,不含香精香料。2、川奈之汀护肤品通过敏感皮肤测试,按照欧洲制药标准生产。3、川奈之汀护肤品所含舒缓敏感肌肤药理成份能够切实解决肌肤问题。

    2024-04-15
    34100
  • skii一套多少钱

    一般几千一套。SK2有违禁物质铬、钕严重超标!铬的危害性远远不止损伤皮肤这么简单。所有铬的化合物都有毒性,它们直接损害人体的消化道、呼吸道、皮肤和黏膜。而且,铬对人体的毒害为全身性的,除引起皮炎、湿疹、气管炎和鼻炎外,甚至可能有致癌作用。而

    2024-04-15
    26800
  • 美肤蒂尼是什么品牌

    美肤帝尼护肤品很好用。 我觉得对于敏感肌的我来说,它真的完胜珂润面霜,蕴含VCIP(学名抗坏血酸四异棕榈酸酯,这个抗坏血酸是强效抗氧化剂,也是咱们国家唯一承认的可以添加到婴儿食品中的抗氧化剂,抗老修护效果非常赞。成分扎实靠谱,能起到强效抗老

    2024-04-15
    32200

发表评论

登录后才能评论
保存