最近公衆號後臺有小夥伴留言,怎麼把一款APP改爲本身的信息呀,咳咳,這又來送題材了,今天水一把APP反編譯
+回編譯
,文中會針對一款APP進行簡單的修改信息,問問題的小夥伴還不火速右上角支持一下。html
MacOS跟Windows我是分開寫的,怕你說平臺不一致就打退堂鼓了。git
MacOS:http://www.javashuo.com/article/p-ukoipmoj-ku.htmlgithub
Windows:http://www.javashuo.com/article/p-otoilrcy-kq.htmlweb
下載地址:https://github.com/skylot/jadx/archive/master.zipmacos
下載後進入文件目錄執行./gradlew dist
bash
經過如上指令,能夠幫咱們打包出 build 目錄,接下來就全靠這個build目錄幹 」大事「 了,咱們來看看這個目錄下的文件:app
接下來安裝今天的第二個工具——apktool編輯器
下載連接:https://ibotpeaches.github.io/Apktool/install/工具
打開網址後找到macos節點,對着 wrapper script
右鍵佈局
彈窗保存時必定要選擇全部文件
格式,注意,沒有後綴,沒有後綴。
點擊macos節點上的 (find newest here)
進入該界面後,查看右側jar下載列表,固然下載最新文件:
至此,咱們下載了兩個文件,咱們把這兩個文件放到 /usr/local/bin
目錄下
而後在該目錄控制檯執行命令:chmod +x apktool.jar apktool
cd /usr/local/bin
chmod +x apktool.jar apktool
在終端執行以下指令:apktool
,只要打印內容說明沒問題
咱們找個簡單點的APP,有人提議用個人塗塗影院,出門右拐,請私下本身嘗試,我怎麼會公開處刑自家孩子。
某視頻APP:https://niceyoo.lanzous.com/iCi92eksqjc
反編譯用到的是第二個下載的工具—apktool,咱們先下載上方連接中的app,而後在該文件目錄的控制檯下執行以下指令:apktool d 名稱.apk
apktool d 一個TV.apk
d,表明反編譯,b表明回編譯,不要記混。
咱們簡單看一下這個目錄:
如圖,其中,res文件夾下存放的是反編譯出來的全部資源,smali文件夾下存放的是反編譯出來的全部代碼,AndroidManifest.xml
則是通過反編譯還原後的manifest
文件。
smali
文件夾下的文件smali
文件使用的是Android虛擬機所使用的寄存器語言,若是看的懂smail文件的話,就能夠修改源代碼的邏輯了,好比增長一個圖片、增長一行文字等等都是修改的smail文件;
在這以前咱們得看到代碼才行,否則都不知道在哪改,改到哪,那麼接下來就是去看APP的源碼了,因此這就用到第一個安裝的軟件了—jadx
須要用到第一個工具—jadx,進入 buil/jadx/bin
目錄。接下來的指令就是基於這4個文件來執行的,可是這個路徑太長了,乾脆咱們把它加入到macos全局環境變量中:
vi ~/.bash_profile
添加以下格式內容:
export PATH=$PATH:/Users/我是路徑,請自行修改/jadx/build/jadx/bin
接下來咱們複製一份 《一個TV.apk》,而後將複製的apk後綴改爲zip,獲得以下:
進入 《一個TV的副本》,這一步主要是想獲得 classes.dex
文件,該文件是獲取源碼的重點,接下來咱們在該目錄控制檯執行以下指令:
jadx-gui classes.dex
經過jadx-gui
工具源碼是看到了,具體代碼細節就不帶着你們一塊看了;可能有小夥伴會好奇,怎麼沒看到實質性的源碼呀,彆着急,再執行試試:
jadx -d out classes.dex
執行該命令,反編譯後會把源碼放入out文件夾下(若是out不存在它會自動建立)
補充:這一小節的目的就是爲了使用jadx-gui可視化界面查看app的源碼,小夥伴千萬不要混了,主要的、以及接下來要操做的仍是在第一小節反編譯出來的代碼。
代碼也看到了,原本計劃這篇就帶你們修改源碼數據,可是爲了照顧大部分小夥伴,接下來就只修改一下APP名稱,而後從新打包APP,下一篇補充:修改佈局
+ 修改smali代碼
。
咱們再回到第一節使用apktool反編譯出來的代碼,找到根目錄的AndroidManifest.xml
,修改文件中的label標籤對應的string.xml文件中的值,此次咱們簡單粗暴點,直接修改內容吧:
修改完記得保存,而後咱們就開始回編譯了。
退回到 《一個TV》 文件夾目錄,執行以下指令apktool b 文件夾名稱
apktool b 一個TV
執行完該命令後,會在 《一個TV》 文件夾下生成一個 dist 目錄,目錄下有個app... 咳咳別激動,還有最後一步:
關於應用簽名,說麻煩也不麻煩,稍微懂點Android的小夥伴,①能夠經過Android Studio或者直接命令行生成簽名文件;②將apk和簽名文件放在同一個目錄,而後再終端執行 jarsigner 代碼;
詳細的我就不囉嗦了,今天爲照顧大多數小夥伴,介紹一個工具 Android Crack Tool
下載連接:https://github.com/Jermic/Android-Crack-Tool
下載安裝後,將上邊獲得的app直接拖進源文件中:
操做也簡單,選擇 「簽名APK」 按鈕,而後點擊 「執行」 按鈕就能夠了:
執行後生成的 《一個TV-S.apk》 就是咱們最終要安裝測試的app了,安裝試一下:
其實成功了,就是名稱太長 「niceyoo博客」 沒顯示出來,ok,下一篇帶你們深一步魔改APP。
小夥伴們不要慌,你慌我也慌,來都來了,關注一下,交個朋友。