拿到一个Unity 打包出来的apk,如果没有加密的话 ,你是可以通过反编译修改其中的属性的。

步骤一   apk 解压 

方法1: apk 变成 .zip 并解压

Android unity 设置 安卓unity修改_Android

然后修改 \assets\bin\Data\Managed\Assembly-CSharp-firstpass.dll

方法2: 下载 apktool 软件对APK反编译 (推荐)

下载地址:https://ibotpeaches.github.io/Apktool/install/

我是windows 平台:下载位置如下

Android unity 设置 安卓unity修改_Android_02

Android unity 设置 安卓unity修改_Android_03

1   下载wrapper script    如果提示安全问题,浏览器设置中关闭安全选项

Android unity 设置 安卓unity修改_Android unity 设置_04

  都关闭掉

Android unity 设置 安卓unity修改_Android_05

   右键,保存为apktool.bat ,之后再下载 apktool.jar 下载后修改名字

Android unity 设置 安卓unity修改_Android unity 设置_06

2 最后下载 apktool.bat 和 apktool.jar 把他们放到 C盘的 Windows 下

如图

Android unity 设置 安卓unity修改_jar_07

(3)使用 win +R 或者 点击 开始 找到运行 使用命令行解压

Android unity 设置 安卓unity修改_github_08

输入"F: "     将当前目录切换到apk 软件所在目录 , 我apk 软件 当前放在F盘

Android unity 设置 安卓unity修改_github_09

Android unity 设置 安卓unity修改_github_10

4 解压当前apk 

       输入 apktool d 我的apk名字.apk   我的apk 名字是:“PlayIt2.apk”  所以输入:   apktool d PlayIt2.apk   


 

Android unity 设置 安卓unity修改_Android unity 设置_11

      就会出现一个解压后的文件,解压成功

Android unity 设置 安卓unity修改_jar_12

Android unity 设置 安卓unity修改_Android unity 设置_13

    也是一样 去修改 \assets\bin\Data\Managed\Assembly-CSharp-firstpass.dll  

步骤2  使用Dnspy 修改Assembly-CSharp-firstpass.dll中想要修改的脚本

然后可以通过下载 类似 dnSpy 软件进行代码反编译

下载地址: https://github.com/dnSpy/dnSpy/releases

Android unity 设置 安卓unity修改_jar_14

Android unity 设置 安卓unity修改_Android_15

 打开dnspy.exe

Android unity 设置 安卓unity修改_Android unity 设置_16

软件界面和vs非常相似,点击文件-->>>打开--- >>>选择打开需要修改的dll 文件 

Android unity 设置 安卓unity修改_github_17

Android unity 设置 安卓unity修改_Android_18

Android unity 设置 安卓unity修改_github_19

Android unity 设置 安卓unity修改_jar_20

步骤3   对修改后的APK 进行打包和 

1 解释:

软件,再用压缩成rar的,然后把后缀改为.apk 是不能使用的,必须要进行重新打包,且设置签名 。

            签名:它就是对我们的apk加了一个校验参数,防止apk被掉包。一开始做Android开发,就接触到了apk签名;后来在微信开放平台、高德地图等平台注册时,需要填写apk签名的md5值和sha256值;再后来做系统应用,接触到了系统签名;而后就想了解下apk的生成机制,学习了如何用命令行进行签名。

 

 2  使用 apktool  将修改保存之后test文件夹重新打包生成新的未签名的apk

      输入:apktool b <文件夹名称> -o <新的apk全称>        如: F:\>apktool b PlayIt2 -o PlayIt3.apk       我将PlayIt2修改后的文件夹打包为:PlayIt3.apk

Android unity 设置 安卓unity修改_Android unity 设置_21


之后就会生成 playIt3.apk  但此时再手机安装时并不能安装成功,因为还没有设置签名

Android unity 设置 安卓unity修改_jar_22

步骤4   重新设置APK签名

1 利用Android Studio生成签名与对apk进行签名(没有需要下载)

1.生成签名

首先要创建一个签名文件,用Android Studio随便建一个项目工程,然后在菜单栏中选择Build -> Generate Signed Bundle/APK。 我的是这个

Android unity 设置 安卓unity修改_github_23

选择APK,点击Next,如下图:

Android unity 设置 安卓unity修改_Android_24

选择Create New

Android unity 设置 安卓unity修改_Android unity 设置_25

填入签名相关信息,如下图:

Android unity 设置 安卓unity修改_github_26

 2  使用 jarsigner 工具  绑定签名和包
首先最好把 待签名的Apk文件和 用来签名的keystore 文件放在同一个目录,然后在目录下开启命令行。

输入指令(简陋版)

jarsigner -keystore myKey.key -signedjar apk-signed.apk apk-unsigned.apk myKey
 1


myKey.key 则是用来签名的keystore文件

apk-signed.apk 则是签名完成的apk文件名

apk-unsigned.apk 则是待签名的apk文件名

myKey 则是keystore文件的别称 key alias

这四项都是要针对自己的情况填写。

正常来说,配置好了环境,输入指令后,就会在apk-unsigned.apk的同级目录下找到 签名好的Apk文件了

如果想要更高级的重签名方式 ,可以参考 Apk去掉签名以及重新签名的方法

2 使用可视化签名工具绑定签名和包(推荐)
 我这里使用的是360的重签名工具。安装打开后,把对应的属性填上去,点击一键签名后,签名后的apk就会生成了,建议使用这种方式,特别是环境配置突然出问题然后急着对Apk重签名的时候,这个工具特别的香。

Android unity 设置 安卓unity修改_Android_27

https://github.com/DMingOu/DMingO-Android-Utils/blob/master/windows%E7%AD%BE%E5%90%8D%E5%B7%A5%E5%85%B7%20360.rar

https://pan.baidu.com/s/16VhzLW5TD7r6O7EEe9Fq1w

Android unity 设置 安卓unity修改_github_28

   如下生成了  PlayIt3_signed_Aligned .apk     完成签名后,可以正常安装使用

Android unity 设置 安卓unity修改_Android_29