Ⅰ apk反编译和重新打包
操作系统:Mac OS X
软件:apktool
进入官网 https://ibotpeaches.github.io/Apktool/ ,点击官网首页的install( https://ibotpeaches.github.io/Apktool/install/ )进入安装指南,里面有Windows,linux和Mac的安装方法,不同的操作系统按不同的步骤来就可以了。
在终端输入: apktool d xxx.apk ,我在反编译时出现了以下错误:
看提示是无法写入到这个目录 /Users/xxx/Library/apktool/framework (xxx为电脑用户名),那就在 /Users/xxx/Library 下新建apktool文件夹,并在apktool文件夹下再新建个framework文件夹,然后为了保险起见设置新建文件夹到权限,在终端输入: chmod -R 777 /Users/xxx/Library/apktool
接着再重新执行反编译命令就可以成功了,在xxx.apk相同目录下会出现反编译后的文件夹。
在终端输入编译命令: apktool b xxx (xxx为刚才反编译的文件夹),成功后会在xxx文件夹下的dist文件夹下生成打包好后的apk文件
现在打包好后的apk是没有签名的,所以无法安装,现在给apk签名
20000为时间,这个设置长点就好了,-keystore后面是签名文件保存路径。输入命令按回车键会让输入密码等信息,按提示输入,不要忘了密码,签名时要用。
2.接着在终端输入:
-keystore后面的为签名文件的路径,-signedjar后面为签名好后apk的存放路径,在这个后面的一个为需要签名的pak的路径,最后的android.keystore为证书的别名,如果不知道别名,可以在终端输入: keytool -list -v -keystore /Users/xxx/Desktop/android.keystore 查看具体信息,里面有别名。
这一步还要注意,签名文件和需要签名的apk要在同一目录下。
Ⅱ apkdb执行反编译一闪而过就什么也没有
APKDB是一款,针对Android OS系统的APK程序,直接反编译修改的工具。其实,本工具是一个工具集合箱,直接在【鼠标右键】创建快捷菜单;非常方便汉化工作者,对APK或Dex文件进行简易的反编译回编译操作;集合了当今最强悍,最犀利的APK及Dex文件编译工具;
但安装过程阻碍多多,这里向大家说说这个工具的安装经验:
1、被杀毒软件拦截误杀(安装前,关闭杀毒软件)
2、没有管理员权限(右键以管理员身份运行C:\Apkdb\安装.exe)
或者,使用兼容模式 (右键-属性-兼容性-兼容模式[Windows XP SP3])
以及 特权等级 勾选“以管理员身份运行此程序”
3、UAC限制 安装过程没有写入注册表提示,直接显示安装完成
(右键 我的电脑-管理-本地用户和组-用户-Administrator(√ 密码永不过期)
4、安装成功,安装过程有写入注册表提示,但是右键APK 没有菜单
(检查是不是安装了PC版的手机管理工具,关联了APK文件。请手动管理本工具的安装器)
5、安装后无法编译文件,提示java 错误
(未安装JAVA平台,或安装错误。请卸载后重启电脑,重装再次重启电脑)
6、安装成功后,编译文件提示 “Can't create the output directory \\****\smali”
(这是文件夹 没有写入权限。检查是否直接在硬盘分区根目录编译了?
Apktool不能在磁盘分区。如:C盘 D盘 根目录!
如果不是根目录,请检查apk文件名称是不是有问题。如,文件名结尾空格。)
7、能反编译,但无法回编译
(可能是被旧版本的Apktool编译过,试试用旧版的反编译,用新版的回编译)
8、回编译出错问题:
(1.提示 strings.xml 最后一行错误,检查是否</string>符号错误;
(2.提示 strings.xml 最顶部含中文代码首行错误,编码格式不对,转换成 UTF-8;
(3.提示 public.xml 出错,检查改动过的 arrays.xml 是否代码有错误的地方;
使用过程中的说明
1、需要反编译的APK文件名称,不可以使用中文,否则无法回编译。
2、反编译后的文件夹不要重命名,否则自动签名会失败(控制在:apktool.yml)。
3、APK文件不能放在分区根目录直接反编译,请放在子目录内。
4、部分功能需要 NET.Framework 4.0 的支持!如:显示APK自身图标。
Ⅲ 安卓APK反编译framework-res可以,回编译出错,求救!
没玩过这个不知道= =
给你推荐两个地方,网络贴吧 android吧和安卓美化吧 去这两个吧问问,在网络知道一般是问不出来的
Ⅳ 安卓手机反编译状态栏是反编译哪个文件那个文件名具体在哪叫什么
【原创】手机端反编译:安卓手机状态栏时间精确到秒
大神们都不发教程的…可我却喜欢分享技术,本教程适合小白,适合电脑端不会搭建java环境跟反编译的家伙
1.提取:
使用x-plore文件管理器提取system/framework/下的所有apk格式的程序例如framework_res.apk和framework-miui-res.apk等等.(总之是比目录下的所有apk格式的文件.有些系统却只有一个,例如泛泰a760s的深度os包)再提取system/app/SystemUI.apk 这三个文件.提取到sd卡根目录
2.安装手机端反编译软件:apktool和加载条件
下载apktool3.6手机版(我用的是非通用版,是armv7专用版),解压把apktool文件夹放在sd卡根目录.安装apktool3.6打开并且获取root权限允许,里面目录找到 framework_res.apk和framework-miui-res.apk分别先后加载选择"作为framework导入"(很多人修改SystemUI.apk不能反编译或者回编译出错就是这个原因,因为没有导入刚才那几个)然后找到SystemUI.apk按住它选择"反编译全部"等待n分钟后,反编译成功后关闭apktool,打开x-plore找到sd根目录新产生的文件SystemUI_src文件夹里面的\res\layout\status_bar.xml用x-plore管理器对着它选择以文本编辑:status_bar.xml(代码可能不同,但是道理一样,安卓系统通用,本人已修改cm10、深度、小米、x-ui其中包括2.3、4.04、4.1.2跟4.2.2反正安卓通用)
3.游戏才刚刚开始!现在开始修改:
在x-plore文件编辑界面点搜索刚才那个文件里面的字,找到如下代码:(可搜索statusbar.Clock,这样快点)
<com.android.systemui.statusbar.Clock android:textAppearance="@android:styleTextAppearance.StatusBar.Icon" android:gravity="left|center" android:paddingRight="6.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" />(也许你的系统有所不同代码,不用管,删了此代码全部就得了)
删了上面的代码,全部修改为以下代码:
<DigitalClock android:textSize="14.0dip" android:textStyle="bold" android:textColor="#ffffffff" android:gravity="center_vertical" android:id="@+id/digitalClock" android:paddingRight="6.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" />(直接复制然后粘贴)
4.回编译 和替换
替换完后保存,就可以回编译了:打开apktool软件,找到SystemUI_src文件夹点一点它,选择回编译,等待n分钟成功后,用x-plore文件管理器打开sd卡根目录的 SystemUI_src.apk文件,选择以zip方式打开,把SystemUI_src.apk里面的resources.arsc跟\res\layout\路径下的status_bar.xml 跟status_bar_expanded.xml 三个文件覆盖替换到原本SystemUI.apk里面的文件(不用签名)
5.替换原来的程序
把改好的SystemUI.apk用x-plore管理器替换覆盖到system/app/里面!重启后,状态栏时间精确到秒爽!(替换前记得提取原版的SystemUI.apk以免修改错误导致状态栏没了,不过不用怕.把原版的 SystemUI.apk替换回来就行了)
Ⅳ 我反编译JAVA文件,有一些汉字信息就变成了\u9879 了
使用 jdk 自带的 native2ascii.exe 工具,在你的 jdk文件夹/bin 下能找到。
针对你的问题,在 cmd 窗口中执行下面的命令即可(需要将 jdk文件夹/bin 加入到 path 环境变量中):
native2ascii -reverse C:\abc.java c:\abc2.java
(这里abc.java表示你的含有 \uxxxx 字符的java文件;
c:\abc2.java 表示转后后的文件)
下面附上完整的 使用方法:
------------------------------
native2ascii用法解析
native2ascii是sun java sdk提供的一个工具。用来将别的文本类文件(比如
*.txt,*.ini,*.properties,*.java等等)编码转为Unicode编码。为什么要进行转码,
原因在于程序的国际化。
Java 编译器和其它 Java 工具只能处理含有 Latin-1 和/或 Unicode 编码(\udddd 记
号)字符的文件。native2ascii 将含有其它字符编码的文件转换成含 Latin-1 和/或
Unicode 编码字符的文件。
若省略 outputfile,则使用标准输出设备输出。此外,如果也省略 inputfile,则使用
标准输入设备输入。
用法:native2ascii [-reverse] [-encoding 编码] [输入文件 [输出文件]]
-[options]:表示命令开关,有两个选项可供选择
-reverse:
执行相反的操作:将含 Latin-1 和/或 Unicode 编码字符的文件转换成含本地编码字符
的文件,不指定编码情况下,将转为本地编码。
-encoding encoding_name
指定转换过程使用的编码名称。缺省的编码从系统属性 file.encoding 中得到。
encoding_name 字符串必须是下表第一栏所示的字符串。
[inputfile [outputfile]]
inputfile:表示输入文件全名。
outputfile:输出文件名。如果缺少此参数,将输出到控制台
-------------------------------------------------------------
8859_1 ISO 8859-1
8859_2 ISO 8859-2
8859_3 ISO 8859-3
8859_4 ISO 8859-4
8859_5 ISO 8859-5
8859_6 ISO 8859-6
8859_7 ISO 8859-7
8859_8 ISO 8859-8
8859_9 ISO 8859-9
Big5 Big5 码,繁体中文
CNS11643 CNS 11643,繁体中文
Cp037 美国、加拿大(两种语言,法语)、荷兰、葡萄牙、巴西、澳大利亚
Cp1006 IBM AIX 巴基斯坦(乌尔都语)
Cp1025 IBM 多语种西里尔语:保加利亚、波斯尼亚 黑塞哥维那、马其顿 (FYR)
Cp1026 IBM Latin-5,土耳其
Cp1046 IBM Open Edition US EBCDIC
Cp1097 IBM 伊朗(波斯语)/波斯
Cp1098 IBM 伊朗(波斯语)/波斯 (PC)
Cp1112 IBM 拉脱维亚,立陶宛
Cp1122 IBM 爱沙尼亚
Cp1123 IBM 乌克兰
Cp1124 IBM AIX 乌克兰
Cp1125 IBM 乌克兰 (PC)
Cp1250 Windows 东欧
Cp1251 Windows 斯拉夫语
Cp1252 Windows Latin-1
Cp1253 Windows 希腊
Cp1254 Windows 土耳其
Cp1255 Windows 希伯莱
Cp1256 Windows 阿拉伯
Cp1257 Windows 波罗的语
Cp1258 Windows 越南语
Cp1381 IBM OS/2, DOS 中华人民共和国 (PRC)
Cp1383 IBM AIX 中华人民共和国 (PRC)
Cp273 IBM 奥地利、德国
Cp277 IBM 丹麦、挪威
Cp278 IBM 芬兰、瑞典
Cp280 IBM 意大利
Cp284 IBM 加泰罗尼亚语/西班牙、拉丁美洲西班牙语
Cp285 IBM 英国、爱尔兰
Cp297 IBM 法国
Cp33722 IBM-eucJP - 日语 (5050 的超集)
Cp420 IBM 阿拉伯
Cp424 IBM 希伯莱
Cp437 MS-DOS 美国、澳大利亚、新西兰、南非
Cp500 EBCDIC 500V1
Cp737 PC 希腊
Cp775 PC 波罗的语
Cp838 IBM 泰国扩展 SBCS
Cp850 MS-DOS Latin-1
Cp852 MS-DOS Latin-2
Cp855 IBM 斯拉夫语
Cp857 IBM 土耳其语
Cp860 MS-DOS 葡萄牙语
Cp861 MS-DOS 冰岛语
Cp862 PC 希伯莱
Cp863 MS-DOS 加拿大法语
Cp864 PC 阿拉伯语
Cp865 MS-DOS 日尔曼语
Cp866 MS-DOS 俄语
Cp868 MS-DOS 巴基斯坦语
Cp869 IBM 现代希腊语
Cp870 IBM 多语种 Latin-2
Cp871 IBM 冰岛语
Cp874 IBM 泰国语
Cp875 IBM 希腊语
Cp918 IBM 巴基斯坦(乌尔都语)
Cp921 IBM 拉脱维亚、立陶宛(AIX, DOS)
Cp922 IBM 爱沙尼亚 (AIX, DOS)
Cp930 与 4370 UDC 混合的日语,5026 的超集
Cp933 与 1880 UDC 混合的韩文,5029 的超集
Cp935 与 1880 UDC 混合的简体中文主机,5031 的超集
Cp937 与 6204 UDC 混合的繁体中文,5033 的超集
Cp939 与 4370 UDC 混合的日语拉丁字母,5035 的超集
Cp942 日语 (OS/2),932 的超集
Cp948 OS/2 中文(台湾),938 超集
Cp949 PC 韩文
Cp950 PC 中文(香港、台湾)
Cp964 AIX 中文(台湾)
Cp970 AIX 韩文
EUCJIS JIS, EUC 编码、日语
GB2312 GB2312, EUC 编码、简体中文
GBK GBK, 简体中文
ISO2022CN ISO 2022 CN, 中文
ISO2022CN_CNS ISO-2022-CN 形式的 CNS 11643,繁体中文
ISO2022CN_GB ISO-2022-CN 形式的 GB 2312,简体中文
ISO2022KR ISO 2022 KR, 韩文
JIS JIS, 日语
JIS0208 JIS 0208, 日语
KOI8_R KOI8-R, 俄语
KSC5601 KS C 5601, 韩文
MS874 Windows 泰国语
MacArabic Macintosh 阿拉伯语
MacCentralEurope Macintosh Latin-2
MacCroatian Macintosh 克罗地亚语
MacCyrillic Macintosh 斯拉夫语
MacDingbat Macintosh Dingbat
MacGreek Macintosh 希腊语
MacHebrew Macintosh 希伯莱语
MacIceland Macintosh 冰岛语
MacRoman Macintosh 罗马语
MacRomania Macintosh 罗马尼亚语
MacSymbol Macintosh 符号
MacThai Macintosh 泰国语
MacTurkish Macintosh 土耳其语
MacUkraine Macintosh 乌克兰语
SJIS Shift-JIS, 日语
UTF8 UTF-8
Ⅵ 如何吧class文件反编译为java文件
项目WAR文件不含java源文件,只有.class文件,如何将WAR项目导入到MyEclipse中去??
我的做法:将WAR中的.class文件反编译成.java文件,反编译软件我用的是Java Decompiler", 由 Pavel
Kouznetsov开发,目前最新版本为0.2.5.它由 C++开发,并且官方可以下载 windows、linux和苹果Mac
Os三个平台的可执行程序。
如何将现有的web程序导入到myeclipse环境中去
如果要将别人发布的war包,导入到自己的eclipse环境中进行再开发,最快的方法如下:
1、新建一个myeclipse的web project。
2、右键该工程,myeclipse/add struts capability,设置成struts开发环境。
3、将war包解压,全目录覆盖新工程的WebRoot(包括其中的web-inf/meta-inf目录),相应的scr目录(或者对应的包含java文件的目录)覆盖eclipse的src目录。myeclipse会自动将WEB-INF\lib下的jar包作为放到classpath中的。
4、refresh该工程,over。
Ⅶ APK反编译后回编译失败是为什么
、反编译=回编译后分别是
smali目录 回编译为 classes.dex 文件
res目录 回编译为 resources.arsc 文件
2、回编译顺序
在回编译时,会先检查“源”即resources
当你汉化文件,修改出错了(缺少一个符号也不行),
那么回编译会自动跳过编译res文件夹,直接回编译smali 。
所以,如果没有对smali(classes.dex)汉化,那么建议大家删掉这个文件夹,
这要会大大加快回编译速度。1、反编译=回编译后分别是
smali目录 回编译为 classes.dex 文件
res目录 回编译为 resources.arsc 文件
2、回编译顺序
在回编译时,会先检查“源”即resources
当你汉化文件,修改出错了(缺少一个符号也不行),
那么回编译会自动跳过编译res文件夹,直接回编译smali 。
所以,如果没有对smali(classes.dex)汉化,那么建议大家删掉这个文件夹,
这要会大大加快回编译速度。
3、出错问题1
在汉化时,往往会不小心删掉一些符号,如 "<" ">"符号等等。
<string name="app_name">File Manager</string>
<string name="app_name">文件管理器/string>
<string name="app_name"文件管理器</string>
这些小小的错误都会导致回编时译检查出错。
所以汉化时,注意对校,然后再回编译。
建议使用一些高级的文本编辑器,支持语法高亮视图的。
4、出错问题2
最近发现有些APK文件 反编译后,就算不汉化直接回编译,都会出错。
有可能的原因1,反编译后XML文件语法中@符号 前面多了"\" (\@ ),
用文本编辑工具 直接替换【\@】为【@】,应该可以解决。
建议使用最新版本的反编译工具。
5、建议大家使用新版本的APKTool工具,
当然如果新的有问题也可以试试旧的一、系统文件汉化再次强调
1、汉化Settings.apk(系统设置)、MMS.apk(信息)、Phone.apk(电话)、
等等系统文件,一定要先 安装构架,具体看另个文件
<关于APKTool工具反编译Settings.apk问题>。
2、系统文件汉化完后不需要签名,直接替换汉化后的文件,就可以了。
主要是,系统文件放在系统目录,无需再次读取签名获得权限,已经是高级了。
二、打包说明
1、通常汉化完回编译后,会自动生成所有APK内的文件,或者自动生成*.APK文件。
但是建议大家不要直接使用该文件,进了使用替换法,替换掉你汉化后的文件,
如:resources.arsc,如果修改过的图片,等等…
2、很多人对于APK文件 解压缩或压缩 都用“WinRAR”或“好压”,这里不推荐。
希望大家安装7-Zip这个压缩工具,对于zip格式的支持是最好的。而且很方便,
不需要重新关联apk 直接右键打开就行了。替换直接拖拉进去,就OK了一、回编译出错问题
(1.提示 strings.xml 最后一行错误,检查是否</string>符号错误;
在汉化时,往往会不小心删掉一些符号,如 "<" ">"符号等等。
<string name="app_name">File Manager</string>
<string name="app_name">文件管理器/string>
<string name="app_name"文件管理器</string>
(2.提示 strings.xml 最顶部含中文代码首行错误,编码格式不对,转换成 UTF-8;
(3.提示 public.xml 出错,检查改动过的 arrays.xml 是否代码有错误的地方;
二、一切能正常但无法回编译
还有一种情况,apktool最新版本能正常反编译一个apk文件,在未做任何修改的情况下,无法回编译。
这是就要注意了,可以尝试一下用低版本的apktool进行【反编译】,然后在用高版本的apktoo工具【回编译】。
这里向大家推荐用 【APKDB】 这个工具,很方便,反编译时可以选择apktool的版本。