导航:首页 > 源码编译 > 反编译系统升级包

反编译系统升级包

发布时间:2022-09-02 23:01:37

① 如何反编译systemUI.apk

ystemui.apk等特殊软件的编译与反编译步骤如下:
第一:要在你的PC上建立java的环境,才能执行编译工作。具体设置方法可参考线刷包移植卡刷包教程。
第二:下载Apktool工具 ,下载后解压得到apktool文件夹,把里面的三个文件放在CDM模式(win+R)默认的目录下。例如,我的是Windows7 32位 我的CDM模式默认目录是C:\用户(Users)\Administrator。
第三:如果你是要编译系统文件的话,请将你要修改的rom里提取framework-res.apk,再用CMD模式“安装”。(不这样做会 导致解包错误)
安装方法:把framework-res.apk放在刚才放在C:\用户(Users)\Administrator文件夹下。cmd模式 执行apktool if framework-res.apk 这个是安装framework-res.apk
第四:准备工作都做好了,现在就可以反编译和编译了。将你要反编译的apk放在C:\用户(Users)\Administrator目录下。(你也可以用指定目录)cmd模式 执行apktool d XXXX.apk 这个就是反编译比如反编译SystemUI就执行 apktool d SystemUI.apk 就可以了(会在当前的目录下生成SystemUI的文件夹,修改就是在这个文件夹里进行)
注意:1.第三步很重要,很多人不成功就是因为没做第三步。
2.编辑回去的systemui.apk及framework-res.apk不能直接放回去(framework-res.apk放回去会导致手机不断重启systemui.apk放回去会导致手机无上栏)

② apk反编译出现异常,谁能告诉我是怎么回事

我用的是apk改之理,反编译异常应该是apk安装包不完整,也就是说系统把apk进行了odex优化,把apk安装包里后缀dex的文件提取出来,从而加快软件运行速度,网上下个odex合并工具试一下,虽然我试过合并odex和apk文件,结果还是反编译失败。

③ 如何反编译 android 中 /data/dalvik-cache/arm 下的文件

所有的 apk 内包含一个 classes.dex 文件。在 Dalvik上,apk包里的 dex文件在安装的时候会通过 dexopt 转化成另一个格式,叫odex(Opitimized dex),然后存在 /data/dalvik-cache里面,如:

/data/dalvik-cache/data@[email protected]@classes.dex
虽然文件后缀还是 .dex,但是这个dex和apk内的那个已经不一样了。这个文件是针对当前机器的硬件对 dex 文件进行了定制化,也就是说把这个放到别的设备上,不一定能运行。

PS: 在要编译 rom 的时候,如果参数加上 "WITH_DEXPREOPT=true",会在 /system/app/ 下同时生成 .apk 和 .odex 文件(注意,这里后缀又用的 .odex,但实际上和系统在 /data/dalvik-cache/ 下的 .dex文件是一样的)

ART

在 ART上,apk 包里的 dex文件在安装的时候通过 dex2oat,也会生成一个后缀为 .dex 的文件,放在 /data/dalvik-cache中,如:

/data/dalvik-cache/arm/system@app@[email protected]@classes.dex
/data/dalvik-cache/arm64/system@vendor@app@[email protected]@classes.dex
这个文件后缀叫 .dex ,但是这个文件又不一样了,这个既不是 dex 也不是 odex,用 dex2jar 的无法进行反编译的。文件格式也完全不同,因为这其实就是一个实打实的 elf文件,这个文件已经可以直接在机器上运行了。

为何 pm.jar 是空的?

首先来了解一下 ROM 的编译选项,看一下编译的时候能做什么事情, 大致了解就行了 。

编译选项

WITH_DEXPREOPT

使能编译时生成 OAT,避免第一次开机时编译耗时,但会增大 system分区的空间消耗

DONT_DEXPREOPT_PREBUILTS

使能后,将不会对 Android.mk中包含了 include $(BUILD_PREBUILT)的 Apk进行 oat,例如 Gmail,它很可能会在后期通过商店自行升级,而升级后系统中的 oat文件则没有意义了,但又无法删除,会造成空间的浪费(oat比dex文件要大)

WITH_DEXPREOPT_BOOT_IMG_ONLY

仅仅针对 boot.img进行oat优化(boot.img中包含 boot.art和 boot.oat)

LOCAL_DEX_PREOPT ture|false|nostripping

可用于各个 Android.mk,对每个 package进行单独配置,当设置为 true时,dex文件将会从 apk中剔除,如果不想剔除可使用 nostripping WPRODUCT _DEX PREOPT_*

WPRODUCT__DEX_PREOPT_*

PRODUCT_DEX_PREOPT_BOOT_FLAGS

这里的参数将会传至 dex2oat,控制 boot.img的编译优化行为。

PRODUCT_DEX_PREOPT_DEFAULT_FLAGS

控制除 boot.img 外,其他(如 jar, apk)的 OAT编译行为 例如:

PRODUCT_DEX_PREOPT_DEFAULT_FLAGS := --compiler- filter=interpret-only
$(call add-proct-dex-preopt-mole- config,services,--compiler-filter=space)
WITH_DEXPREOPT_PIC ture|false

使能 position-independent code,这样在dex2oat编译生成的 odex文件在运行时将不必再从 /system 下拷贝到 /data/dalvik-cache/ 目录下, 可以节省 /data 空间

WITH_ART_SMALL_MODE true|false

设置为 true 时,将只编译处于 boot classpath 里的类,其他的均不编译,这样既能加快第一次开机时间,因为大部分必要的类已经编译过了; 同时也能节省不少空间,因为 APP 都未进行编译。缺点是可能损失一性能,这可能要平时觉察不出,但在跑分软件上会有所体现

编译选项的经典配置

为了提高第一次开机速度,WITH_DEXPREOPT是必须使能的,这样则在编译阶段会完成 dex2oat的操作,避免在开机时间去做这个转码,节省了开机时间(6min以上缩短2min内)。

但会引起一个缺点,那就是 apk中还是包含了 class.dex(dexopt生成的),同时在对应的apk文件夹中又生成了已经转码成oat的 class.odex(dex2oat生成的),相当于这部分重复,造成了大量的空间浪费。

为了把 apk包里的 class.dex去除,节省空间,可以打开 DEX PREOPT DEFAULT := ture。

然而,这样开机速度是快了,而且节省了不少system空间,但开机后,我们会发现即使在 system中已经存在 class.odex的 apk,第一次开机后还是会在 /data下面生成 class.odex,如data/dalvik-cache/arm64/system@app@[email protected]@classes.dex,这是何解?原来 Google为了提高安全性,在每一台机器开机时都会在之前的机器码加一个随机的偏移量,这个偏移量是随机的,每台机器都不相同,而 data分区下的这些文件就是从 system下的 class.odex加上偏移而来。

④ 如何反编译IMG(内核)文件

先介绍一下编译核心的选项,希望能对大家消除对内核的神秘感有所帮助。
1.代码成熟等级
2..处理器类型和特色
3.对模块的支持
4.基本的选择
5.即插即用支持
6.块设备支持
7.网络选项
8.电话支持
9.SCSI设备的支持
10.I2O接口适配器
11.网络设备支持
12.配置业余无线广播
13.红外支持
14.ISDN的文件系统
15.旧型的光驱类型(非IDE界面的光驱)
16.字符设备
17.USB支持
18.文件系统
19.控制台驱动
20.声卡驱动
21.Kernel hacking
第二节 内核版本
由于linux的源程序是完全公开的,任何人只要遵循GPL,就可以对内核加以修改并发布
给他人使用。Linux的开发采用的是集市模型(bazaar,与cathedral--教堂模型--对应
),为了确保这些无序的开发过程能够有序地进行,Linux采用了双树系统。一个树是稳
定树(stable tree),另一个树是非稳定树(unstable tree)或者开发树(developm
ent tree)。一些新特性、实验性改进等都将首先在开发树中进行。如果在开发树中所
做的改进也可以应用于稳定树,那么在开发树中经过测试以后,在稳定树中将进行相同
的改进。一旦开发树经过了足够的发展,开发树就会成为新的稳定树。开发数就体现在
源程序的版本号中;源程序版本号的形式为x.y.z:对于稳定树来说,y是偶数;对于开
发树来说,y比相应的稳定树大一(因此,是奇数)。确定是以″ root ″的身份签入,
然后cd 到 /usr/src 。uname -r 这个指令将会显示版本。内核版本的更新可以访问<h
ttp://www.kernel.org/>。
第三节 编译原因
Linux作为一个自由软件,在广大爱好者的支持下,内核版本不断更新。新的内核修订了
旧内核的bug,并增加了许多新的特性。如果用户想要使用这些新特性,或想根据自己的
系统度身定制一个更高效,更稳定的内核,就需要重新编译内核。
通常,更新的内核会支持更多的硬件,具备更好的进程管理能力,运行速度更快、更稳
定,并且一般会修复老版本中发现的许多漏洞等,经常性地选择升级更新的系统内核是
Linux使用者的必要操作内容。

为了正确的合理地设置内核编译配置选项,从而只编译系统需要的功能的代码,一般主
要有下面四个考虑:
---自己定制编译的内核运行更快(具有更少的代码)
---系统将拥有更多的内存(内核部分将不会被交换到虚拟内存中)
---不需要的功能编译进入内核可能会增加被系统攻击者利用的漏洞
---将某种功能编译为模块方式会比编译到内核内的方式速度要慢一些
以上是针对成熟的Linux套件如Redhat Linux而言,我的目的是为建造嵌入式Linux操作系
统做准备,也是必由之路。
第四节 准备工作
第一部分 新版本内核的获取和更新
Linux内核版本发布的官方网站是< http://www.kernel.org/>,国内各大ftp上一般都可
以找到某些版本的内核。新版本的内核的发布有两种形式,一种是完整的内核版本,另
外一种是patch文件,即补丁。完整的内核版本比较大,比如linux-2.4.0-test8.tar.b
z2就有18M之多。完整内核版本一般是.tar.gz(.tgz)文件或者是.bz2文件,二者分别
是使用gzip或者bzip2进行压缩的文件,使用时需要解压缩。patch文件则比较小,一般
只有几十K到几百K,极少的会超过1M。但是patch文件是针对于特定的版本的,需要找到
自己对应的版本才能使用。
编译内核需要root权限。把需要升级的内 拷贝到/usr/src/下(下文中以2.2.16的内核
的linux-2.2.16tar.gz为例),命令
#cp linux-2.2.16tar.gz /usr/src
先查看当前/usr/src的内容,注意到有一个linux的符号链接,它指向一个类似于linux
-2.2.14(对应于现在使用的内核版本号)的目录。首先删除这个链接:
#cd /usr/src
#rm -f linux
现在解压下载的源程序文件。如果所下载的是.tar.gz(.tgz)文件,使用命令:
#tar -xzvf linux-2.2.16tar.gz
如果下载的是.bz2文件,例如linux-2.2.16tar.bz2,使用命令
#bzip2 -d linux-2.2.16tar.bz2
#tar -xvf linux-2.2.16tar

现在再来看一下/usr/src下的内容,发现现在有了一个名为linux的目录,里面就是需要
升级到的版本的内核的源程序。还记得那个名为linux的链接么?之所以使用那个链接就
是防止在升级内核的时候会不慎把原来版本内核的源程序给覆盖掉了。现在也需要同样
处理:
#mv linux linux-2.2.16
#ln -s linux-2.2.16 linux

如果还下载了patch文件,比如patch-2.2.16,就可以进行patch操作(下面假设patch-
2.2.16已经位于/usr/src目录下了,否则需要先把该文件拷贝到/usr/src下):
#patch -p0 < patch-2.2.16
第二部分 准备主机板和相关硬件的说明手册
其实也不用太详细,只要知道您的硬件是属于哪一类型就行了。例如:有一张SCSI卡,
那就要知道这张卡的名字,有一台cd-rom,就要知道这台光驱是哪一种牌子的,是否为标
准的IDE/ATAPI界面,还是另有专属接口卡呢?或者,主机版是否有支持Triton芯片(通
常586以上的电脑常有),这些信息能帮助我们,使得设定变得清楚且容易。
因此,不管您有什么使用手册,准备好吧。即使现在不用,将来还是会用到的(设X-w
indow system时要显示卡的手册)。
第三部分 检查声卡的IRQ设定和其种类
如果配有一张声卡,除了要知道卡的种类外(例如 Sound Blaster)还需要知道这张卡
的IRQ地址。一般来说,卢卡的IRQ地址是5或7而IO地址则为220。DMA则l,不过,有时不
同的声卡可能会有不同的设定。因为稍后的选项里,就会要填入这些数字。
第四部分 编译核心的硬件需求
在编译核心时,确定您的RAM最好在8MB以上, 否则可能会很慢而且问题会很多,记得查
看swap有没有打开(用free指令)。此外,最好不要超频,不然很有可能会发生signal
11的错误,使得编到一半的核心停了下来,其实编译核心就好比编译程序一样,只是因
为构成核心的程序太多了,因此我们能小心尽量小心。

⑤ 如何编辑制作自己的 安卓系统刷机包

貌似听大神说过
刷机包核心内容是二进制的
而且反编译。一般的手段不可以
不对别喷我
我也是道听途说。

⑥ 如何反编译华为的SystemUI.apk文件

操作步骤:
第一:要在你的PC上建立Java的环境,才能执行编译工作。具体设置方法可参考线刷包移植卡刷包教程步骤

第二:下载Apktool工具 apktool.zip
(2.68 MB)。
下载后解压得到apktool文件夹,把里面的三个文件放在CDM模式(win+R)默认的目录下。
例如,我的是Windows7 32位
我的CDM模式默认目录是C:用户(Users)Administrator。

第三:如果你是要编译系统文件的话,请将你要修改的rom里提取framework-res.apk,再用CMD模式“安装”。(不这样做会导致解包错误)
安装方法:把framework-res.apk放在刚才放在C:用户(Users)Administrator文件夹下。
cmd模式执行apktool if
framework-res.apk这个是安装framework-res.apk

注意:1.第三步很重要,很多人不成功就是因为没做第三步。

2.编辑回去的systemui.apk及framework-res.apk不能直接放回去(framework-res.apk放回去会导致手机不断重启,

⑦ 反编译Android APK的具体步骤是怎样的

1、配置好JAVA环境变量,下载:apktool 解压的文件放在C盘根目录的apktool文件夹里(apktool文件夹自己创立)
2打开命令提示符,(开始-运行-输入cmd)
3输入:cd \apktool 系统指令到了apktool文件夹(这里就是为什么要把解压的apktool解压的文件放到apktool文件夹的原因,当然你也可以自命名文件夹的名称,那么比如arc,那么指令就变成了:cd \arc 前提是你必须把apktool解压的文件放到这个文件夹里面)
4使用RE管理器把系统里面的framework-res.apk 与 SystemUI.apk 提取出来放在apktool文件夹里面

5 如果只是想反编译framework-res.apk

输入apktool if framework-res.apk(框架的建立)
6开始最重要的反编译,输入指令,apktool d framework-res.apk

(反编辑的APK一定要用没换过图片的,否则回编辑失败)
7最后反编译完成

修改代码完成后,输入代码:apktool d framework-res 即可完成回编译
8回编译后的新的 apk在framework/dis 文件夹里面
9如果反编译的是系统文件,比如,SystemUI.apk 那么必须进行挂载框架,反编译时,必须敲入一下命令:(然后再重复7-9步骤)
apktool if framework-res.apk
apktool if SystemUI.apk

10对于三星手机(比如9100、9108/9100G),如果反编译SystemUI.apk要敲入一下命令进行框架挂载apktool if framework-res.apk
apktool if twframework-res.apk
apktool if SystemUI.apk
11回编译的命令是 apktool b XXX (没有后面的apk后缀)反编译的命令是 apktool d xxx (有后面的apk)

⑧ 如何反编译系统的apk

1
下载apktool所需文件:
a、 apktool1.5.2.tar.bz2
b、apktool-install-windows-r05-ibot.tar.bz2 (windows系统)

2
解压刚刚下载的文件,并将解压的文件放入C:\Windows目录下

3
启动控制台,输入apktool,回车可查看到apktool工具常用指令

4
新建一个文件夹,用于存放apk及待解压的文件,这里笔者将文件夹建在D:\apk目录,同时放入用于测试的android app包(test.apk)

5
控制台输入:apktool d D:\apk\test.apk D:\apk\test 进行反编译操作
中句话中“D:\apk\test.apk”指apk存放位置,“D:\apk\test”指反编译后文件存放的位置

6
反编译成功之后,进入D:\apk\test文件目录可以查看到反编译后的文件

⑨ 怎么反编译settings.apk

事项:
1.反编译系统文件必须是从官方提取的.APK文件。(因为APK只能实现一次反编译,就是说如果这个文件已经反编译过了,就不能再次反编译,就算你反编译了也不能回编译。)
2.编译工具论坛上很多可以自己搜索下载,存放的位置文件夹最好不带中文。
3.覆盖原文件时一定要切记,先移动到系统文件夹下,然后修改权限,然后在覆盖原来APK(不然会怎么样,我相信大家懂的{:soso_e144:} )
4.就算附件中有反编译工具也要自己搭建好java环境(因为一切反编译的工具都是建立在JAVA环境的基础上的)

开始教程:
1.关于JAVA、环境变量,请搜索教程帖
2.环境变量设置成功后,就是提取你手机上的Settings.apk。
3.进行反编译,(我想有一定美化基础的应该很会简单的),反编译后得到Settings文件夹打开然后\res\values-zh-rCN\找到strings文件,右键打开,打开方式选择看你习惯。

修改好以后选择保存,回编译。
回编译好的APK用鼠标右键单击 选择用好压打开然后将resources.arsc 拖拽出来。然后在把JU1.1的Settings.APK提取出来也用好压打开,将刚才拖拽的resources.arsc 文件在拖拽到JU得APK中。然后点覆盖。然后在将其移动到SYSTEM\APP里 就OK了(记得修改权限)

这个需要在手机上操作
打开RE管理器,打开里面的system,找到build.prop.长按弹出对话框,选择:使用文本编辑器打开(右上角要改为读写哦)
第四行的:ro.build.display.id= 等号后面就是你想要输入的不要过长哦~
第八行的:ro.build.version.release= 同上

修改完成后,点击左虚拟键,也就是设置键,选择:保存并退出。
你会在build.prop下面发现它的备份文件,删除,重启,OK~全部完成~

阅读全文

与反编译系统升级包相关的资料

热点内容
在家如何创业python 浏览:222
编译原理好课 浏览:716
python中实数的表示 浏览:370
php下载中文名文件 浏览:348
哪里有专门注册app实名的 浏览:273
魔爪mx稳定器app去哪里下载 浏览:469
excel如何批量处理电话号码加密 浏览:324
ark命令 浏览:39
seal是不是对称密钥算法 浏览:29
免费学习的app在哪里下载 浏览:177
rfid与单片机 浏览:590
5s相当于安卓什么手机 浏览:690
哈佛商学院pdf 浏览:978
app的ip哪里买 浏览:909
移动天文台app在哪里下载 浏览:924
phpjsonencode乱码 浏览:587
t3的服务器名是什么几把 浏览:69
高中算法语句 浏览:549
安卓充电接头坏如何直接线 浏览:2
mcu编译成库 浏览:296