首先直接说原因: 因为linux 下的PATH变量错误导致的
需求:让运营打包时修改应用名,比如wifi管家改为天天wifi管家
做法: 修改res/values/strings.xml的app_name字段。
问题过程 :很愉快的用shell替换了
sed "s/<string name=\"app_name\">.*<\/string>/<string name=\"app_name\">${new_app_name}<\/string>/" $DECODE_PATH/res/values/strings.xml > /data/package/strings.xml
但是apktool 编译回来的时候就报错了
Caused by: brut.androlib.AndrolibException: brut.common.BrutException: could not exec command: [aapt, p, --min-sdk-version, 7, --target-sdk-version, 16, -F, /tmp/APKTOOL4305046551350833283.tmp, -0, arsc, -I, /usr/local/app/apktool/framework/1.apk, -S, /data/package/public_tools/apktool/tencentwifimanager_1.1.0.20001_android_20160217202532-reunion-release_wifi_999002/res, -M, /data/package/public_tools/apktool/tencentwifimanager_1.1.0.20001_android_20160217202532-reunion-release_wifi_999002/AndroidManifest.xml]
at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java:357)
at brut.androlib.Androlib.buildResourcesFull(Androlib.java:336)
... 5 more
Caused by: brut.common.BrutException: could not exec command: [aapt, p, --min-sdk-version, 7, --target-sdk-version, 16, -F, /tmp/APKTOOL4305046551350833283.tmp, -0, arsc, -I, /usr/local/app/apktool/framework/1.apk, -S, /data/package/public_tools/apktool/tencentwifimanager_1.1.0.20001_android_20160217202532-reunion-release_wifi_999002/res, -M, /data/package/public_tools/apktool/tencentwifimanager_1.1.0.20001_android_20160217202532-reunion-release_wifi_999002/AndroidManifest.xml]
at brut.util.OS.exec(OS.java:93)
at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java:355)
... 6 more
Caused by: java.io.IOException: Cannot run program "aapt": java.io.IOException: error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:460)
at java.lang.Runtime.exec(Runtime.java:593)
at java.lang.Runtime.exec(Runtime.java:466)
at brut.util.OS.exec(OS.java:84)
... 7 more
Caused by: java.io.IOException: java.io.IOException: error=2, No such file or directory
at java.lang.UNIXProcess.<init>(UNIXProcess.java:148)
at java.lang.ProcessImpl.start(ProcessImpl.java:65)
at java.lang
不应该啊 我只是apktool d的时候 把-r资源文件去掉了,改了下资源文件而已啊。
尝试解决
1 不改资源文件 打包还是报错
2 加回-r 一切正常。
问题的焦点其中在了-r上面了。但这个是必须要的,不然得不到要修改的文件。
3 根据报错google一下 得到的解决方法一个是
# yum install -y compat-libstdc++-296.i686
# yum install -y compat-libstdc++-33.i686
让运维执行了 没有解决
4 网上看到另外解决方案 从Android Studio复制aapt 替换apktool 的。感觉麻烦没做
5 使用另外一个版本的apktool,还是没有解决。
不过方法4和5给了我灵感。 aapt的对不对其实是由什么决定的呢。有path变量啊。果断看一下path变量,居然aapt的路径和apktool路径的版本是对不上的。坑啊。
解决:改下path变量就解决了
分享到:
相关推荐
在最新版本中,它已经解决了老版本中资源解析失败的问题,提高了使用的稳定性和效率。 首先,让我们了解一下什么是APK文件。APK是Android应用的主要文件格式,包含了应用程序的所有代码、资源、库和配置信息。当...
【新版apktool】是针对Android应用逆向工程领域的一个重要更新,主要解决了因旧版`apktool.jar`导致的反编译失败问题。Apktool是一款强大的工具,它允许开发者和安全研究人员对APK文件进行反编译,查看并修改其源...
在apktool2.3.4版本中,主要改进了回编译流程,修复了因资源引用问题导致的回编译失败,增强了对Android框架和库的支持,使得对复杂应用的反编译和回编译更加顺利。此外,该版本还优化了资源解析效率,减少了内存...
在本例中,此逆向助手特别强调了查看反编译后的JAVA源码和无乱码资源文件的能力,这意味着它可能已经解决了Apktool在处理某些编码时可能出现的乱码问题,提高了用户体验。 Android逆向助手_v2.2是这个工具的特定...
这些问题可以通过使用apktool的`--no-res`选项跳过资源解析,或者下载对应的AOSP库来解决。 在完成修改后,重新编译APK的命令如下: ```bash java -jar apktool.jar b output_folder -o new_apk.apk ``` 这里,`b`...
在使用APKTool时,可能会遇到各种错误,如资源解码失败、找不到框架文件等问题。遇到这类问题,应首先检查JAVA环境是否配置正确,其次确认APKTool版本是否与目标APK兼容,最后,确保正确安装和管理了必要的框架文件...
1. **错误修复**:这个版本主要解决了在早期版本中遇到的各种bug,包括但不限于解析错误、编译失败等问题,提升了整体的稳定性和可靠性。 2. **兼容性增强**:apktool 2.1.0可能增强了对不同Android版本和设备的...
APK软件汉化教程 ... 随着Android手机种类的不断丰富,各种应用软件也开始遍地开花,Android用起来也越来越爽了……不过有很多软件都是...根据mNetwork这个控件是否选中决定是否打开基站定位,mNetwork就是界面那个选择框
如果遇到回编译失败的情况,可以尝试以下解决策略: - 检查源代码和资源文件是否完整无误。 - 更新Apktool到最新版本,因为新版本通常修复了一些已知问题。 - 查看错误日志,根据提示进行修正。 - 使用其他辅助工具...
解决targetSdkVersion版本过低安装失败,安装apk提示版本太低,targetsdkversion修改方法,操作方法:https://blog.csdn.net/a2831942318/article/details/121564997?spm=1001.2014.3001.5501 一、打包错误 ...
在实际操作中,解压和打包 APK 文件可能会遇到一些问题,例如签名验证失败、资源冲突等。解决这些问题通常需要对 Android 应用的构建流程有深入理解,包括资源的版本控制、签名机制以及 AndroidManifest.xml 的配置...
3. 打包过程中,如果出现不成功的情况,因为修改局限于AndroidManifest.xml文件,所以问题更容易定位和解决。 四、小工具功能 小工具主要用于SDK的集成检测,它可以检测APPKey和渠道信息,并将它们打印出来,但不...
apk反编译失败或重打包失败解决工具,,,,,,解压密码:lemisky
6. **使用其他工具**:如果Apktool仍然无法解决问题,可以尝试其他反编译工具,如dex2jar和JD-GUI,它们可以提供不同的反编译视图。 在“归档2.zip”文件中,我们有两个文件:`tool.txt`和`android反编译.jar.zip`...
当遇到"apk反编译异常"时,可能是因为Apktool版本不兼容或者解析过程中遇到了加密或混淆的代码,升级到最新版本通常可以解决这些问题。 2. **Dex2jar**:这个工具由潘志勇(Pang Zhongyang)开发,主要用于将Dalvik...
总的来说,ApkToolAid V2.48是一个强大而全面的Android应用辅助工具,它提供了从APK解析到修改再到打包的一站式解决方案,极大地简化了Android应用的逆向工程和定制工作。无论是专业开发者还是业余爱好者,都能从中...
在Android开发领域,APK是应用的安装包,它包含了应用...正确使用和理解apktools的反编译和打包过程,可以极大地提升开发者的技能和解决问题的能力。在实际操作中,务必遵循相关规定,确保合法且安全地使用这一工具。
综上所述,APK文件不仅承载着Android应用的所有必要组件,而且通过恰当的工具和方法,开发者可以对其内部进行深入探索和修改,从而满足特定的需求或解决应用问题。理解和掌握APK文件的结构及编辑技巧,对于Android...
Apktool和Jarsigner等工具则用于解包、修改和重新打包APK。 四、权限处理 1. 动态权限:自Android 6.0(API级别23)起,部分敏感权限变为运行时权限,用户可以在应用运行时决定是否授予。 2. 升级时权限处理:新...