Unity3D对apk反编译、重编译、重签名
生活随笔
收集整理的這篇文章主要介紹了
Unity3D对apk反编译、重编译、重签名
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本文源鏈接:http://blog.csdn.net/qq393830887/article/details/56025923
工具
- Java環境
- Apktool(這玩意有些坑爹,不是官網最新的就好,找到一個好用的版本號能少非常多坑)
Apktool
Jarsigner
反編譯
var argList = ProcessHelper.CreateArgumentsContainer();argList.Add("java -jar");argList.Add(ApkToolPath);argList.Add("d");argList.Add(pathToBuildProject);argList.Add("-o");argList.Add(GetDecodeApkFolder(pathToBuildProject));var p = ProcessHelper.Start(ProcessHelper.CreateStartInfo());ProcessHelper.WriteLine(p, ProcessHelper.CreateArguments(argList));var result = p.StandardOutput.ReadToEnd();var error = p.StandardError.ReadToEnd();p.WaitForExit();p.Close();Debug.Log(result);Debug.Log(error);
- 反編譯之后的圖如上(unknown是沒有的)
- 反編譯之后能夠做一些改動。通常會改動AndroidMainifest.xml
- 牛逼一點的。能夠改動smali,比如前面提及到的Unity半屏輸入
重編譯
var unsignedApk = GetUnSignedApkPath(pathToBuildProject);FileHelper.DeleteFile(unsignedApk);var argList = ProcessHelper.CreateArgumentsContainer();argList.Add("java -jar");argList.Add(ApkToolPath);argList.Add("b");argList.Add(GetDecodeApkFolder(pathToBuildProject));argList.Add("-o");argList.Add(unsignedApk);var cmd = string.Join(" ", argList.ToArray());var p = ProcessHelper.Start(ProcessHelper.CreateStartInfo());ProcessHelper.WriteLine(p, ProcessHelper.CreateArguments(argList));var result = p.StandardOutput.ReadToEnd();var error = p.StandardError.ReadToEnd();p.WaitForExit();p.Close();Debug.Log(result);Debug.LogError(error);重簽名
var unsignedApk = GetUnSignedApkPath(pathToBuildProject);var finalApk = GetFinalApkPath(pathToBuildProject);FileHelper.DeleteFile(finalApk);var argList = ProcessHelper.CreateArgumentsContainer();argList.Add("jarsigner");argList.Add("-keystore 路徑");argList.Add("-storepass password");argList.Add("-signedjar");argList.Add(finalApk);argList.Add(unsignedApk);argList.Add("別名");var p = ProcessHelper.Start(ProcessHelper.CreateStartInfo());ProcessHelper.WriteLine(p, ProcessHelper.CreateArguments(argList));var result = p.StandardOutput.ReadToEnd();var error = p.StandardError.ReadToEnd();p.WaitForExit();p.Close();Debug.Log(result);Debug.LogError(error);- 一個Keystore能夠相應多個Key
- 假設Key的password不一樣,還得另外輸入Key的password
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎
總結
以上是生活随笔為你收集整理的Unity3D对apk反编译、重编译、重签名的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Unix基本操作指令备忘
- 下一篇: Microsoft发布用于统一事件处理的