AndroidManifest.xml无法写入,求助修改APK的SDK版本参数
解决APK文件只读无法修改SDK版本的问题
嗨,别着急,直接用Android Studio打开APK文件确实没法直接编辑——因为APK是已经编译打包好的成品安装包,不是可直接编辑的Android项目工程,所以哪怕你改了文件系统权限,Studio里还是会显示只读状态。下面给你两种靠谱的方法来修改SDK版本:
方法一:反编译APK后修改配置再重新打包
这是修改APK配置最常用的方式,步骤很清晰:
- 先装个反编译工具
apktool:Mac上直接用Homebrew安装就行,终端输入brew install apktool - 把APK反编译成可编辑的文件夹:终端里执行
apktool d 你的APK文件名.apk,执行完会生成一个和APK同名的文件夹 - 找到文件夹里的
AndroidManifest.xml文件,直接打开编辑,把里面的android:minSdkVersion改成19,android:targetSdkVersion改成14(这里要提醒你一句:通常targetSdkVersion应该不低于minSdkVersion,你是不是写反了?如果是笔误,建议改成比19高的版本,比如33之类的,避免兼容性问题) - 重新打包成新APK:执行
apktool b 刚才生成的文件夹名 -o 新APK文件名.apk - 给新APK签名:未签名的APK没法安装,你可以用
jarsigner工具签名。如果没有签名密钥,先终端输入keytool -genkey -v -keystore my-release-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias my-alias生成一个,然后执行jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.jks 新APK文件名.apk my-alias完成签名
方法二:新建Android项目重构APK(适合深度修改)
如果之后还要改其他内容,直接重构项目更方便:
- 打开Android Studio,新建一个Empty Activity项目,创建时就把
Minimum SDK设为19,Target SDK设为14(同样注意版本逻辑) - 把原APK改后缀为.zip,解压后把
res文件夹、assets文件夹里的内容复制到新项目对应的目录下 - 如果需要修改代码,得用
dex2jar把APK里的classes.dex转成JAR包,再用JD-GUI查看反编译后的Java代码,把需要的逻辑复制到新项目中(反编译的代码可能有混淆,可读性会差一些) - 最后编译新项目,就能得到符合SDK版本要求的APK了
内容的提问来源于stack exchange,提问作者Nandi X
相关产品推荐
相关产品推荐

