MIUI ROM適配之旅第三天 反編譯

2021-07-05 13:38:21 字數 1139 閱讀 1107

首先說句抱歉,今天事情比較多,教程出來的比較晚,請包含。今後幾天也會稍晚一點,但是我會每天更新的。

今天我們來詳細的看看反編譯,想要修改乙個系統自帶的應用程式和它的**,在沒有原始碼的情況下,我們就不得不用反編譯來修改。

和很多書籍一樣,為了向經典的"hello, world"致敬,我們也從乙個簡單的程式開始helloactivity.apk。當你把這個apk安裝到手機上執行後,在螢幕上就顯示一行文字"hello, world!"(世界我來了!是的,兄弟姐妹們,從今天起我們真正進入反編譯的世界,我們來了!)

反編譯

為了介紹方便,從現在起,我會用cracker~$作為命令提示符,其後的文字表示我們需要執行的命令。如果其後有斜體字,表示命令的輸出結果。

cracker~$ apktool d helloactivity.apk

這條命令執行完後,在當前目錄下會生成乙個名為helloactivity的目錄。

該目錄的結構為(名稱後跟/表示這是乙個目錄):

helloactivity/

|————–androidmanifest.xml

|————–apktool.yml

|————–res/

|————–smali/

apktool.yml是apktool生成的乙個配置檔案,基本上你不需要修改這個檔案。下面的章節我們逐個介紹剩下的androidmanifest.xml檔案和res, smali目錄。

androidmanifest.xml

要想完全理解這個檔案,你得對android的內部運作機制非常清楚。幸好我們修改乙個apk的時候基本上不改這個檔案。這裡幫助你有個大致的了解。

android安裝程式一般叫apk檔案(apk是android package的縮寫,表示android安裝包)。一般來說,程式都會有乙個或多個activity, activity是什麼呢,從概念說它是乙個和使用者互動的視窗,你每天使用android手機的時候基本上你打交道的每個介面都是乙個activity。androidmanifest.xml是乙個xml格式的清單檔案,就像你去超市買東西會列印出乙個購物清單,androidmanifest.xml也起著乙個清單的作用,它告訴系統,我有這些activity。(實際情況遠比這複雜,想學android程式設計的同學請看這個好好學習其中的內容)。

碼神之旅第三天

今天是來到碼神的第三天了,來到這裡的第一天,我就能感覺得到同學們積極的學習氛圍,事實也證明,同學們對學習的熱情也是極高的,課堂上楠哥的講解也非常細緻入微,而我則是由於前一天的斷電,晚上沒休息好,導致課堂上沒什麼精神,甚至有點瞌睡,楠哥發現後,停下正在講的內容來輔導我乙個人,這點讓我非常感動,這又讓我...

php學習之旅第三天

1.運算子 只比較值不比較型別 123 123 返回值為true 左邊與右邊相同,資料型別大小都要相同 123 123 返回值為false 不全等於,只有大小或者型別不同 2.邏輯運算邏輯與和邏輯或又被稱為短路運算 如果第乙個表示式結果已經滿足條件了,那麼就不會執行邏輯運算子後面的表示式 所以在書寫...

第三天,努力!!

第三天了,不錯不錯,基本上按自己的計畫進行著,雖然工作還是沒找到,不過也不再那麼的怕了,慢慢來吧,其實也沒太多時間了 今天早上十點才,真的覺得自己太不像話了,不過我一覺醒來就那個時候了,我的手機每天的鬧鐘是7 30不過好像從來聽不見它響,哈哈 明天希望能早點起,明天北京工體有乙個大型的招聘會,可以去...