apktool怎么设置回编译失败
㈠ E4A写的APK用apktool反编译成功,但是修改后回编译时失败
1
有没有加载framework-res.apk构架?在编译一些系统程序时需要先加载framework-res.apk这个系统构架。
2
反编的文件及framework-res.apk是不是官方原版未改动过的?很多时候出错是因为反编的文件是别人或自己改动过的,建议直接从官方固件中提取文件进行编译。
3
技巧说明使用的工具是否版本过低?目前APK编译工具apktool已更新到1.5.2了,这里有本人珍藏的交互式界面版下载:点我下载
4
技巧说明以上都没有问题?反编后什么也不改回编也出错?那只有一个方法了:可以尝试一下用低版本的apktool进行反编译,然后在用高版本的apktoo工具回编译
5
打开要编译文件夹目录下的
apktool.yml,修改apkFileName参数为
非中文,问题可以解决
6
反汇编时没有生成apktool.yml,进行反汇编时,改用命令apktool
d
-r
xx.apk
xx便可以解决(加上了-r选项)
㈡ apktool 回编译失败 怎么解决
回汇编时出现:
F:\apktool>apktool b Hello Hello.apk
Exception in thread "main" brut.androlib.AndrolibException: brut.directory.PathN
otExist: apktool.yml
at brut.androlib.Androlib.readMetaFile(Unknown Source)
at brut.androlib.Androlib.build(Unknown Source)
at brut.androlib.Androlib.build(Unknown Source)
at brut.apktool.Main.cmdBuild(Unknown Source)
at brut.apktool.Main.main(Unknown Source)
Caused by: brut.directory.PathNotExist: apktool.yml
at brut.directory.AbstractDirectory.getFileInput(Unknown Source)
... 5 more
经验证是,反汇编时没有生成apktool.yml
进行反汇编时,改用命令apktool d -r xx.apk xx便可以解决(加上了-r选项)
㈢ apktool 回编 报错: brut.common.BrutException:could not exec (exit code = 1) 请各位大神帮忙 谢谢!
解决方式:
把母包里的bool.xml拷贝到融合的apk里。
代码如下:
W: F:PackageTemp102294game esvaluespublic.xml:1063: error: Public symbol bool/abc_config_actionMenuItemAllCaps declared here is not defined.
W: F:PackageTemp102294game esvaluespublic.xml:1064: error: Public symbol bool/abc_config_closeDialogWhenTouchOutside declared here is not defined.
W: F:PackageTemp102294game esvaluespublic.xml:1065: error: Public symbol.
(3)apktool怎么设置回编译失败扩展阅读:
apktool 回编失败
1、反编译=回编译后分别是
smali目录 回编译为 classes.dex 文件
res目录 回编译为 resources.arsc 文件
2、回编译顺序
在回编译时,会先检查“源”即resources
当你汉化文件,修改出错了(缺少一个符号也不行),
那么回编译会自动跳过编译res文件夹,直接回编译smali 。
所以,如果没有对smali(classes.dex)汉化,那么建议大家删掉这个文件夹,
这要会大大加快回编译速度。
㈣ 手机apktool怎么回编译
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工具,
当然如果新的有问题也可以试试旧的(作者说的)
㈤ apktool b 回编译error: No resource identifier found for attribute 'bgType' in package 解决
尝试回编译qq时出现如下错误:
改用 -r 参数:反编译时不解包资源,再回编译即可解决:
经测试,回编译之后的 APK 无法运行,原因在于R文件夹并未打包进去,而是打包了一个 Res 文件夹,导致安装后 APP 图标都显示不正确,故需要用7-zip手动删除 qqrepack.apk 内的 Res 文件夹,然后把原版 qq.apk 内的 R 文件夹拷贝到 qqrepack.apk 内,再重新签名即可使用。
PS1:要用破解版的QQ,否则会闪退
PS2:也可将原版QQ内的R文件夹解压后,拷贝到反编译出的qquildapk内,这样回编译时回自动添加到qqrepack.apk内,无需再通过7-zip操作
㈥ apktool 回编译失败 怎么解决
、反编译=回编译后分别是
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的版本。
㈦ Ubuntu下用apktool回编译失败
我在CentOS下,遇到一个一样的问题,好像是64位系统下不支持32位appt程序导致的,后来通过root权限,使用CentOS下的命令:
yumupdatelibstdc++
yuminstalllibstdc++.i686glibc.i686zlib.i686
安装了32位的 glibc、zlib、libstdc++把这个问题解决了。不知道能不能为你在Ubuntu下提供一点帮助。
㈧ apk反编译,回编出错了
不影响正常运行,只是编译环境,
compileSdkVersion 告诉 Gradle 用哪个 Android SDK 版本编译你的应用。使用任何新添加的 API 就需要使用对应 Level 的 Android SDK。
需要强调的是修改 compileSdkVersion 不会改变运行时的行为。当你修改了 compileSdkVersion 的时候,可能会出现新的编译警告、编译错误,但新的 compileSdkVersion 不会被包含到 APK 中:它纯粹只是在编译的时候使用。(你真的应该修复这些警告,他们的出现一定是有原因的)
因此我们强烈推荐总是使用最新的 SDK 进行编译。在现有代码上使用新的编译检查可以获得很多好处,避免新弃用的 API ,并且为使用新的 API 做好准备。
注意,如果使用 Support Library ,那么使用最新发布的 Support Library 就需要使用最新的 SDK 编译。例如,要使用 23.1.1 版本的 Support Library ,compileSdkVersion 就必需至少是 23 (大版本号要一致!)。通常,新版的 Support Library 随着新的系统版本而发布,它为系统新增加的 API 和新特性提供兼容性支持。
解决办法有两种(我测试的前提是反编译的母包是没有包含这两个属性的):
(1)使用apktool 2.3.2版本,因为2.3.3之后版本针对appt和appt2做了修改,最后AndroidManifest.xml里面不在包含compileSdkVersion和compileSdkVersionCodename
(2)清除原本的1.apk,重新指定framework-dir:java -jar apktool_2.4.0.jar empty-framework-dir --force,最后发现可以回编译成功,但是AndroidManifest.xml还是会包含compileSdkVersion和compileSdkVersionCodename。
㈨ apktool 回编 报错: brut.common.BrutException:could not exec (exit code = 1) 请各位大神帮忙 谢谢!
apktool解包后确实存在打包回不去的问题,这种情况下即使解包后什么都不做直接回编也失败,问题出在apk包上,可能做了反编译的处理,使jar包结构发生改变,这种情况下就无法对该apk进行反编译和回编的处理了。
汇编时出现:
F:apktool>apktool b Hello Hello.apk
Exception in thread "main" brut.androlib.AndrolibException: brut.directory.PathN
otExist: apktool.yml
at brut.androlib.Androlib.readMetaFile(Unknown Source)
at brut.androlib.Androlib.build(Unknown Source)
at brut.androlib.Androlib.build(Unknown Source)
at brut.apktool.Main.cmdBuild(Unknown Source)
at brut.apktool.Main.main(Unknown Source)
Caused by: brut.directory.PathNotExist: apktool.yml
at brut.directory.AbstractDirectory.getFileInput(Unknown Source)
经验证是,反汇编时没有生成apktool.yml
进行反汇编时,改用命令apktool d -r xx.apk xx便可以解决(加上了-r选项)。
(9)apktool怎么设置回编译失败扩展阅读:
汇编执行指令经汇编程序翻译为机器指令,二者之间基本上保持一一对应的关系。汇编伪指令又称作汇编指示,用于向汇编程序提供用户自定义的符号、数据的类型、数据空间的长度,以及目标程序的格式、存放位置等提示性信息,其作用是指示汇编程序如何进行汇编。使用汇编语言编写的源代码,需要通过使用相应的汇编程序将它们转换成可执行的机器代码。这一过程被称为汇编过程。
许多汇编程序可以识别代表地址和常量的标签(label)和符号(symbols),这样就可以用字符来代表操作数而无需采取写死的方式。普遍地说,特定的汇编语言和特定的机器语言指令集是一一对应的。
许多汇编程序为程序开发、汇编控制、辅助调试提供了额外的支持机制。有的汇编语言编程工具经常会提供宏,它们也被称为宏汇编器。
㈩ 如何利用apktool反编译apk
电脑必须装JAVA
JAVA电脑环境教程
apktool
方法/步骤
1. 配置好JAVA环境变量,下载:apktool 解压的文件放在C盘根目录的apktool文件夹里(apktool文件夹自己创立)
打开命令提示符,(开始-运行-输入cmd)
2. 输入:cd \apktool 系统指令到了apktool文件夹(这里就是为什么要把解压的apktool解压的文件放到apktool文件夹的原因,当然你也可以自命名文件夹的名称,那么比如arc,那么指令就变成了:cd \arc 前提是你必须把apktool解压的文件放到这个文件夹里面)
3. 使用RE管理器把系统里面的framework-res.apk 与 SystemUI.apk 提取出来放在apktool文件夹里面
4. 如果只是想反编译framework-res.apk
输入apktool if framework-res.apk(框架的建立)
5. 开始最重要的反编译,输入指令,apktool d framework-res.apk
(反编辑的APK一定要用没换过图片的,否则回编辑失败)
6. 最后反编译完成
7. 修改代码完成后,输入代码:apktool d framework-res 即可完成回编译
8. 如果反编译的是系统文件,比如,SystemUI.apk 那么必须进行挂载框架,反编译时,必须敲入一下命令:(然后再重复4-7步骤)
apktool if framework-res.apk
apktool if SystemUI.apk
9. 对于三星手机(比如9100、9108/9100G),如果反编译SystemUI.apk要敲入一下命令进行框架挂载apktool if framework-res.apk
apktool if twframework-res.apk
apktool if SystemUI.apk
10. 回编译的命令是 apktool b XXX (没有后面的apk后缀)反编译的命令是 apktool d xxx (有后面的apk)