游戲出了版本之后,提供給渠道,有部分渠道會修改包名(當他們內部系統做出調整后,可能會改包名),這個時候我又需要知道包名。之前沒辦法,試圖反編譯apk,發現失敗了。然后就安裝apk到手機上,手機上再下載一個包查看軟件,然后找到包名。
之后我一直在想,windows下應該是能實現的,而碗豆莢之類的工具,只顯示apk的圖標和它所需要的權限,它對應的啟動activity及包名是沒有顯示出來的。我嘗試搜索”apk 包名查看工具”,然后找到apkhelper這個工具,下載使用后發現它能很快就顯示相應的信息,對此我就比較好奇了,研究了一下,記錄幾個重要的點。了解這些要點,完全可以自己動手寫工具了:
重點是二個應用程序:aapt.exe、unzip.exe
一、獲取apk的包名及版本信息
通過aapt就能查到它所支持的參數及用法
aapt.exe dump badging xxx.apk > a.txt
將dump信息輸入至a.txt中,控制台打印信息顯示中文會亂碼,打開a.txt會顯示相應的信息:
這樣就拿到了
包名 -- package name
版本 -- versionCode、versionName
icon信息 – application-icon-xx
二、獲取icon圖標
右擊apk,通過壓縮軟件打開,的確可以找到icon,那是不是意味着通過unzip apk來找到icon呢,可以是可以,不過好幾十M的東西解壓也需要時間,就顯得很浪費了。我看apkhelper很快就顯示出來了,這個就需要再研究了,之后我搜索“aapt 獲取apk icon”找到這樣一篇文章:
我發現它是遍歷文件流來查找文件,如果我想在dos下使用,也就只需要解壓指定的文件即可。icon的路徑通過第一步已經知道了,現在就是要找命令如何調用了,搜索到這篇帖子:
unzip -j xx.apk file_path -d out_dir
不加-d 就直接將相應的文件解壓到當前目錄中了
參考鏈接: