Apk打包后重新添加资源流程(Unity apk其他apk也是一样的)。

各位我是基于PC打的啊。
我是基于我们公司PC播放器打出来的apk,也就是说从一个Unity打出来的PC平台的程序中打出来一个apk。

前两天接到一个需求想Unity打出来包后只加载一个游戏数据。
当然可以提前打出来所有的游戏包(那不得程序员一个一个打),
也是算基于我们播放器做的一个功能吧,播放器里面有很多模板把其中一个模板打出来作为一个独立运行的apk就这样嗯…。

刚开始想法是把apk直接解压缩出来直接放进去,但是放进去了不知道怎么再弄成apk然后就开始了各种搜索。

注意:如果Unity的AndroidManifest文件中需要进行配置不然Android11安装不上:
AndroidManifest文件中需要添加配置android:exported="true"或android:exported=“false”
在主activity中需要设置成android:exported=“true”,其他activity中需要设置为android:exported=“false”
在这里插入图片描述

1.Unity打出apk
2.下载apktool.jar(我用的是2.6的)里面也有2.3跟2.5的要是2.6有问题你们试试其他的。
链接:https://pan.baidu.com/s/1WRcLMgN-srBU44CGMvwxYQ
提取码:1yxs

3.将apk进行反编译执行命令(apktool d test.apk)
首先打开CMD进入到apktool.jar所在文件夹下,会得到与安装包相同的一个文件夹:在这里插入图片描述
我把里面的Java环境路径改了你们可以该回去我改成绝对路径了。原本是系统环境变量里面配置的。
原本是这样写的:set java_exe=“%JAVA_HOME%\bin\java.exe”。
在这里插入图片描述

4.得到的文件夹
assets文件夹对应的是Application.dataPath文件夹,也就是说我们放点东西在里面代码是可以获取到的。
以下是加载步骤:
这个文件夹在android上是只读的所以我的方式是把要放的资源打成zip放进去,当打开可以直接读到这个zip直接下载到Application.persistentDataPath文件夹下。
注意:下载文件的时候Application.dataPath后面得加上!assets/ 这个路径才能用才能获取到。
在这里插入图片描述在这里插入图片描述
5.资源放进去后
假如:我放了一个AssetsData.zip。
(1).还是CMD进入到apktool.jar所在文件夹下,输入执行命令:apktool b test(就是你apk反编译出来的文件夹名,我的实例里面是123。)
(2).当命令执行完后像我下面的图片一样,点击你的文件夹你会发现多出build/dist文件夹dist里面的apk就是我们新打出来的apk包含我们放的东西。到这感觉已经做完了但是还没有完,此时的apk是装不上的会提示解析包错误什么的。耐心继续往下看吧最后一步了。

在这里插入图片描述在这里插入图片描述在这里插入图片描述
6.apk签名
对的最后一步就是对我们dist里面的apk进行重新签名。
这个txt我放到上面百度云盘连接里面了。
我们看图中keystore大家应该都知道单我还是说一嘴吧,这个keystore就是签名文件Unity里面可以直接生成一个,或者androidstudio里面生成.jks签名文件但是我没试过,我觉得应该是通用的。
在这里插入图片描述
7.最近在Android11/android12系统上装不上报错-124
需要在上面基础上再进行加固
V1签完名后进行对齐:
zipalign -v 4 待签名的apk路径 签名后的apk路径
再执行V2签名:
java -jar apksigner.jar sign --ks 密钥路径 --out 签完后的apk路径 待签名的apk路径

找到一个特别好用的大佬开发的签名软件不用执行命令直接签名:
https://editor.csdn.net/md/?articleId=127774865
V2加固相关文章:
https://www.jb51.net/article/141954.htm

需要的jar包连接:(放在一个文件夹下这样CMD不用来回切换)
链接:https://pan.baidu.com/s/1WRcLMgN-srBU44CGMvwxYQ?pwd=1yxs
提取码:1yxs
复制这段内容后打开百度网盘手机App,操作更方便哦

猜你喜欢

转载自blog.csdn.net/qq_42223582/article/details/123720376
apk
今日推荐