首页»版块 兴趣街区 爱数码 教你们如何移植、美化系统软件!!

教你们如何移植、美化系统软件!!

  [复制帖子标题和链接]

1.5万14

荣耀粉丝11206189  LV10  发表于 2015-7-20 11:13:43 属地未知 来自:浏览器
本帖最后由 人在 于 2015-7-20 16:39 编辑
想必很多粉粉在看到别人的手机里有一款系统自带的软件觉得不错,而自己手机里却没有。很想拿来用。可是提取后,才发现不能安装...怎么弄呢?就让 人在 来教你。

现在开始 人在 的科普贴之移植系统优秀软件教程

我们首先要知道什么是Odex?
    Odex全称Opendex,Odex是安卓上的应用程序apk中提取出来的可运行文件,是通过apk安装包的中的dex优化过的,再把apk包里的dex文件删除。这样做可以加快软件的启动速度,预先提取,减少对RAM的占用,因为没有odex的话,系统要从apk包中提取dex再运行。
    所谓Odex,是由android软件中的classes.dex生成的,Odex化即是把那个文件预先提取出来作用是能加快软件加载速度和开机速度。不过Odex也有缺点,那就是有时候加刷东西会出现问题。

    用我的理解,简单说,原本系统每次执行APK都需要先提取一部分出来,而Odex化就是现在你提前把它提取出来了。系统启动或者程序运行加快的原因也就在此。而由于提取了Odex出来,会占用一部分存储空间,所以做Odex化的时候需要考虑空间方面的问题。
    一般来说官方rom都是odex化的rom(含Odex文件),而定制rom大部分都是deodex化的(无odex文件)。两者应该各有优点吧,貌似现在也没有统一的说法。官方rom大部分每个apk对应一个.odex文件,而deodex化的rom里面只有一个apk,把.odex转换成classes.dex放到apk包里面了。所以,odex  rom的.apk+.odex=deodex化rom的1个.apk(简单地来说,其实就是一个合并的过程)

    我们可以先解压一个apk文件——其实apk文件就是一个zip压缩包改了后缀而已,用电脑的winrar即可打开。或者在手机上用re管理器打开都可以。
    解压一款第三方软件可以看到,apk文件内部都会存在一个名为classes.dex的文件。这样我们说这个apk是完整的,只要签名后即可安装。
    那么我们打开手机系统的根目录,找到system/app文件夹里,我们会看到,如果是官方rom,那么该目录的文件夹里会存在这很多apk文件和与它名字一样的odex文件。再解包那个apk文件,里面居然没有classes.dex文件。提取出来后也不能安装。为什么呢?这个安装包是不完整包,不能正常安装。就算复制到别的手机里也没用。
                                                 教你们如何移植、美化系统软件!!
(如上图所示)如此种种,怎么破呢?难道眼睁睁看着好资源浪费了吗?不,我们有办法。现在进入正题。
    开始之前,我们要准备好软件,就是手机端神器——apktool。下载地址;yunpan.cn/cckYXkbTygaCH
游客,如果您要查看本帖隐藏内容请评论
游客,如果您要查看本帖隐藏内容请评论

    下载安装好之后,我以SystemUI.APK为例,教各位粉粉如何移植软件。(楼主这里是用了老版本)
   
游客,如果您要查看本帖隐藏内容请评论

    就这样,完美解决apk不完整问题。然后再把那个apk文件签名,如果是系统软件,就必须获取root!!不然re管理器不能修改system目录!!这就是必须root的原因。
    还有一点,放到系统app目录下必须先放到system目录里修改权限,在剪切到app目录里。权限修改为三读一写。即rw-r-r
第一列三个勾,第二列一个,其他不管。然后重启......宣告成功。(记住系统关键性的还是不要随便弄了)。
那么为什么厂商要吧apk odex化?
我们再来说一下Odex的优点
1.刷完机首次进入系统的时间会缩短一些。文件的运行速度应该也有所提升。
2.APK文件不能单独安装,并且如果反编译APK文件,一般也只能得到资源文件。可以说是起到一定的保护作用,避免被肆意修改和使用。这样做可以使其厂商保证一定的反盗版,因为没有没有dex文件的apk是无法正常安装的。
3.会增加一些可安装应用的空间,虽然不是很多。

再说Odex的缺点
1.不方便修改ROM以及文件本身。
2.增加ROM包的体积,虽然不是很多。
3.当你升级某个被Odex的应用后,这个应用将会出现故障,最常见的就是FC。
而现在的定制rom之所以基本上都是deodex化(无odex文件)的是因为:
1. 可以适当减小文件的体积,起到节省rom空间的作用;
2.主要方便rom定制者对rom的个性化定制和移植;apk相对容易反编译和修改,而odex先要解包成smali然后才能生成classes.dex,如果要再生成odex,还要用dexopt-wrapper,比较麻烦。

为什么把分离出odex会加快运行速度:
    当Android启动时,DalvikVM监视所有的程序(APK文件)和框架,并且为他们创建一个依存关系树。DalvikVM通过这个依存关系树来为每个程序优化代码并存储在Dalvik缓存中。这样,所有程序在运行时都会使用优化过的代码。这就是当你刷一个新的ROM时,有时候第一次启动时间非常非常长的原因。当一个程序(或者框架库)发生变更,DalvikVM将会重新优化代码并且再次将其存在缓存中。在cache/dalvik-cache是存放system上的程序生成的dex文件,而data/dalvik-cache则是存放data/app生成的dex文件。

再次声明:1、刷机有风险,移植系统关键性软件更要慎重。不要混用。(比如三星的系统软件移植到华为上)
2、移植软件不需要root,但手机必须获取root后才能移植成功!!
3、否则后果自负!!

            实际上操作没难度。。只要你能懂。会者不难,难者不会!!{:8_211:}{:7_180:}

评论14
荣耀粉丝11206189  LV10  发表于 2015-7-20 11:15 属地未知 来自:浏览器
占个沙发
ironyyz01  LV10  发表于 2015-7-20 11:34 属地未知 来自:浏览器
这个教程一定要学习下,移植、美化系统软件!
jessenju  LV10  发表于 2015-7-20 16:13 属地未知 来自:浏览器
不错不错,学习了
13949753010  LV7  发表于 2015-7-20 16:18 属地未知 来自:浏览器
dddddddddddddd
荣耀粉丝8002691  LV9  发表于 2015-7-20 16:21 属地未知 来自:浏览器
感谢楼主分享
清欢不渡  LV10  发表于 2015-7-20 16:26 属地未知 来自:浏览器
挺不错的教程 支持一个
荣耀粉丝8958490  LV5  发表于 2015-7-20 18:43 属地未知 来自:浏览器
看看学习学习
荣耀粉丝6354732  LV9  发表于 2015-7-21 06:13 属地未知 来自:浏览器
谢谢分享
   发表于 2016-2-17 23:43 属地未知 来自:浏览器
感谢分享,楼主辛苦了。
您需要登录后才可以评论 登录 | 立即注册
简体中文 - China
快速回复 返回顶部 返回列表