导航:首页 > 源码编译 > 反编译rom

反编译rom

发布时间:2022-02-01 17:16:05

⑴ 如何用手机修改ROM,需要什么软件(详细)多谢,本人是新手。

建议你下载现成的android ROM。
android ROM的组成非常复杂,不是随随便便就能做成的。
既然你说是修改,那么,直接用ES文件管理器即可,解压ROM包,里面主要由15部分组成

1)META-INF文件夹:内含升级脚本及ROM的签名
2)System文件夹:包含对系统所有界面,软件等的控制文件夹
3)Boot.img文件:android内核文件
4)App文件夹:放置系统软件的目录
5)Bin文件夹:放置android系统本地程序, 主要是linux系统自带的组件
6)Etc文件夹:放置android系统配置文件,如apn文件等
7)Fonts文件夹:放置字体文件,包含标准字体和粗体、斜体、中文、英文等
8)Framework文件夹:放置android系统平台框架文件及布局控制
9)Lib文件夹:放置系统底层库及运行库文件
10)Media文件夹:放置系统铃声音乐文件夹及开机动画文件
11)Tts文件夹:放置手机的语音文件
12)Usr文件夹: 放置用户文件,包含共享、键盘布局、时间区域文件等。
13)Vendor文件夹:放置ROM厂商定制内容
14)Xbin文件夹:放置用户系统支持程序文件
15)Build.prop文件:系统属性配置文件

里面部分是在System 文件夹内,所以主要修改System文件夹即可。
修改System 文件夹操作,多数人只是修改apk包。
apk文件夹内里面所有apk包都是系统应用(原本Root后才可以删的应用),可以删除小部分,同样也可以反编译这些包,以修改。
也可以修改代码,需要java代码编辑器。
封包时再压缩即可。

实际上,android ROM包很复杂,不是三言两语就能教出所有的步骤,不是随随便便就能修改地非常好的,建议上网多学习这些内容。

⑵ 如何反编译android应用并重新打包

一.看android的源代码

1)将Apkd.apk 用zip解压后,出现了一个classes.dex文件
2014/02/19 19:42
.
2014/02/19 19:42
..
2014/02/19 15:35 1,656 AndroidManifest.xml
2014/02/19 15:35 687,024 classes.dex
2014/02/19 15:49
META-INF
2014/02/19 15:49
res
2014/02/19 15:35 2,200 resources.arsc
2)进入到dex2jar目录中,运行情况如下:
D:\developer\tools\test_apk\dex2jar-0.0.9.15>dex2jar.bat "..\Apkd(d2j)\classes.d
ex"
this cmd is deprecated, use the d2j-dex2jar if possible
dex2jar version: translator-0.0.9.15
dex2jar ..\Apkd(d2j)\classes.dex -> ..\Apkd(d2j)\classes_dex2jar.jar
Done.
在apk所在的目录会出现 classes_dex2jar.jar 文件。
3) 用JD-GUI对jar包进行查看,可以查看源文件

二.反编译apk

1.在下载APKTOOL中的三个文件(aapt.exe、apktool.bat、apktool.jar)解压缩到你的Windows安装目录下,以方便使用Dos命令.
2012/12/06 11:44 854,016 aapt.exe
2014/02/19 17:15 277,372 Apkd.apk//示例用apk文件
2012/12/23 23:39 92 apktool.bat
2013/02/03 02:37 2,655,843 apktool.jar
2.进入到apktool.bat所在的目录,运行:
apktool d Apkd.apk decode_dir
反编译后,decode_dir目录下的内容如下:
2014/02/19 17:16 716 AndroidManifest.xml
2014/02/19 17:16 237 apktool.yml
2014/02/19 17:18
build
2014/02/19 17:16
res
2014/02/19 17:16
smali
此时我可以查看原文件AndroidManifest.xml了,也是查看smali源文件(是用smali语言写的,可以对照java看)。

三.APKTOOL的使用

1).decode
该命令用于进行反编译apk文件,一般用法为
apktool d

代表了要反编译的apk文件的路径,最好写绝对路径,比如C:\MusicPlayer.apk
代表了反编译后的文件的存储位置,比如C:\MusicPlayer
如果你给定的已经存在,那么输入完该命令后会提示你,并且无法执行,需要你重新修改命令加入-f指令
apktool d –f

这样就会强行覆盖已经存在的文件
2).build
该命令用于编译修改好的文件,一般用法为
apktool b

这里的
就是刚才你反编译时输入的
(如C:\MusicPlayer),输入这行命令后,如果一切正常,你会发现C:\MusicPlayer内多了2个文件夹build和dist,其中分别存储着编译过程中逐个编译的文件以及最终打包的apk文件。
3).install-framework
该命令用于为APKTool安装特定的framework-res.apk文件,以方便进行反编译一些与ROM相互依赖的APK文件。具体情况请看常见问题

四.smali与java源码对照,并做出相应的修改

java源代码:

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.*;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView a = (TextView)this.findViewById(R.id.test) ;
a.setText("raoliang");
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

}

对应的smali源代码:
.class public Lali/text/apkd/MainActivity;
.super Landroid/app/Activity;
.source "MainActivity.java"

# direct methods
.method public constructor ()V
.locals 0

.prologue
.line 8
invoke-direct {p0}, Landroid/app/Activity;->()V

return-void
.end method

# virtual methods
.method protected onCreate(Landroid/os/Bundle;)V
.locals 2
.parameter "savedInstanceState"

.prologue
.line 12
invoke-super {p0, p1}, Landroid/app/Activity;->onCreate(Landroid/os/Bundle;)V

.line 13
const/high16 v1, 0x7f03

invoke-virtual {p0, v1}, Lali/text/apkd/MainActivity;->setContentView(I)V

.line 14
const/high16 v1, 0x7f08

invoke-virtual {p0, v1}, Lali/text/apkd/MainActivity;->findViewById(I)Landroid/view/View;

move-result-object v0

check-cast v0, Landroid/widget/TextView;

.line 15
.local v0, a:Landroid/widget/TextView;
const-string v1, "raoliang"

invoke-virtual {v0, v1}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V

.line 16
return-void
.end method

.method public onCreateOptionsMenu(Landroid/view/Menu;)Z
.locals 2
.parameter "menu"

.prologue
.line 21
invoke-virtual {p0}, Lali/text/apkd/MainActivity;->getMenuInflater()Landroid/view/MenuInflater;

move-result-object v0

const/high16 v1, 0x7f07

invoke-virtual {v0, v1, p1}, Landroid/view/MenuInflater;->inflate(ILandroid/view/Menu;)V

.line 22
const/4 v0, 0x1

return v0
.end method

通过对比可以看到,常量是没有必变的,可以根据的smali的语法,进行相应的修改

五.3、打包、签名和安装修改后的apk

修改完了,就可以打包回apk了。执行以下命令:
apktool b decode_dir
在mygame目录下的dist在会看到打包好的apk。
当然,现在一般是无法安装的,因为apk还没有签名。下面就来签名。签名需要keystore文件,我已经有专用的keystore了,如果还没有,请参阅这里进行生成。
执行以下命令为重新编译的my_game.apk签名:
jarsigner -verbose -keystore demo.keystore Apkd.apk demo.keystore
最后,在安装到手机前,需要把手机中的已有版本先卸载,因为如果签名不同,是不能覆盖安装的,会提示“应用程序未安装”错误。
完整的运行情况如下:

D:\developer\tools\test_apk\new\decode\dist>keytool -genkey -alias demo.keystore -keyalg RSA -validity 40000 -keystore demo.keystore
输入keystore密码:
再次输入新密码:
您的名字与姓氏是什么?
[Unknown]: rao
您的组织单位名称是什么?
[Unknown]: rao
您的组织名称是什么?
[Unknown]:
您所在的城市或区域名称是什么?
[Unknown]:
您所在的州或省份名称是什么?
[Unknown]:
该单位的两字母国家代码是什么
[Unknown]:
CN=rao, OU=rao, O=Unknown, L=Unknown, ST=Unknown, C=Unknown 正确吗?
[否]: y

输入的主密码
(如果和 keystore 密码相同,按回车):

D:\developer\tools\test_apk\new\decode\dist>jarsigner -verbose -keystore demo.keystore Apkd.apk demo.keystore
输入密钥库的口令短语:
正在添加: META-INF/MANIFEST.MF
正在添加: META-INF/DEMO_KEY.SF
正在添加: META-INF/DEMO_KEY.RSA
正在签名: res/drawable-hdpi/ic_launcher.png
正在签名: res/drawable-mdpi/ic_launcher.png
正在签名: res/drawable-xhdpi/ic_launcher.png
正在签名: res/drawable-xxhdpi/ic_launcher.png
正在签名: res/layout/activity_main.xml
正在签名: res/menu/main.xml
正在签名: AndroidManifest.xml
正在签名: classes.dex
正在签名: resources.arsc

D:\developer\tools\test_apk\new\decode\dist>
到此为止,修改后的apk可以正常的安装了,不过,在安装之前,必须要先卸载以前的apk,不能直接替换(因为签名不一样)

⑶ 怎样将BIOS ROM中的内容反汇编成汇编指令

需要自己买个烧解器,插上flash,读出来,存成bin文件,然后用反汇编器进行反汇编即可。
linux下用nasm就可以了,如果是windows系统,建议使用ida之类的软件进行反汇编。

⑷ 如何制作刷机包可不可以从手机中导出rom进行修改,编译为刷机包

你可以借助第三方工具进行修改,像用蘑菇rom助手
什么的,都比较简单,你在网上找找视频

⑸ 我想知道,rom的美化和优化要不要反编译就是说替换状态栏图标,字体这些的,又或者build优化

替换状态栏图标字体需要反编译,替换系统字体不需要,build优化也不需要反编译

⑹ 想学习4.4.2rom修改美化移植,包括反编译apk,论坛上找到的教学都是安卓2.x的有没有新一些

请问你了解了ROM包的结构没

⑺ 我想修改别人修改过的安卓ROM里面的framework-res.apk文件,反编译后没问题,可是回编译不了,怎么弄啊

twframework-res.apk 刷机包里 SYSTM下 framework 里 直接用WINRAR打开 或改后缀RAR 里面 RES里 drawable带---的四个文件夹 就是图片文件夹 可以在UOT厨房修改

⑻ 如何反编译华为的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放回去会导致手机不断重启,

⑼ 安卓设置反编译后要打开哪个文件修改代码啊,把黑色背景改成全透明的,,注意是全透明的,哪位rom大神

直接找个透明框架呗 。

⑽ 如何反编译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放回去会导致手机无上栏)

阅读全文

与反编译rom相关的资料

热点内容
app怎么查看自己的主域名 浏览:638
欧洲银行加密币市场 浏览:858
linuxc编程高级 浏览:733
python解码vip视频 浏览:594
丑陋的中国人pdf 浏览:717
我的世界如何在服务器里面装模组 浏览:622
javaweb进销存源码下载 浏览:556
单片机遥控门铃设计图解 浏览:324
闪送app怎么更改照片 浏览:160
公司的程序员开始忙了 浏览:506
统信系统命令行如何输汉字 浏览:281
java随机取数组 浏览:477
服务器匆忙什么意思 浏览:780
windows下载文件命令 浏览:101
绍兴加密防伪技术 浏览:54
linux清除缓存的命令 浏览:779
梁柱连接处梁的加密箍筋 浏览:103
安卓录屏大师如何弹出 浏览:658
cad命令详解 浏览:173
品牌云服务器提供商 浏览:326