最近在學(xué)習(xí)Android Framework的調(diào)試方法
看了一篇大神寫如何調(diào)試Android Framework摧莽?庙洼,寫的很好,步驟很詳細(xì)镊辕。
如他所說
“一個進(jìn)程是否可以調(diào)試是由進(jìn)程啟動時候的參數(shù)決定的油够;普通的App進(jìn)程如果是debug keystore默認(rèn)是可以調(diào)試的,有或者你在AndroidManifest里面指定debuggable為true也是可以調(diào)試的征懈。對系統(tǒng)進(jìn)程石咬,我們只有采取系統(tǒng)級別的手段:讓整個系統(tǒng)可以調(diào)試——debug版或者編譯參數(shù)debuggable為1的系統(tǒng)。解決這個辦法很簡單:使用模擬器(真機也行卖哎,限Nexus系列刷原生Android系統(tǒng)鬼悠,把系統(tǒng)啟動的debuggable參數(shù)修改為1)”
上面一段文字看起來好長的樣子虏束,其實意思很簡單,就是說需要一臺手機的debuggable參數(shù)為1 就可以了厦章,可是我沒有啊U赵濉袜啃!怎么辦,學(xué)不下去了幸缕;
怎奈群发,我的求(zhuang)知(bi)欲實在是太強了 就點開了google 查了一下發(fā)現(xiàn)debuggable 參數(shù)是在default.prop這個文件里,看起來so easy =, =
隨后发乔,我在手機里安裝了RE文件管理器熟妓,打開,在根目錄下找到default.prop 找到 ro.debuggable 并將其值設(shè)置為 1起愈,重啟
一切看起來都是那么的和諧和順利抬虽,本以為會完事〉驯伲可當(dāng)手機重啟之后手幢,我發(fā)現(xiàn)ro.debuggable的值又變回了原來的0。其實這個文件是系統(tǒng)通過boot.img生成的管钳,修改它沒用才漆,會被系統(tǒng)覆蓋黎比。
既然是boot.img 生成的 所以就需要改boot.img阅虫,查了資料說是需要mkbootimg拆包颓帝,修改完之后在打包(這里其實是個大坑)购城。 由于mkbootimg和unpackbootimg是基于源碼編譯的,網(wǎng)上下載下來的不靠譜侮攀,所以需要自己去下載源碼編譯魏身。我嘗試了沒成功,想嘗試的話可以參考
最后回季,找到一個非常nice的方法颤殴,并成功解決了我的問題涵但,在這里分享出來,以免有人需要澈侠。
其實很簡單哨啃,只需
一拳球、下載 Image Kitchen for Android 并安裝到手機里(網(wǎng)盤下載地址在底部)
二邑跪、將手機系統(tǒng)對應(yīng)的 boot.img 復(fù)制到手機sdcard里
三、打開Image Kitchen for Android 點擊右下角+選擇 Unpack/Mount -> boot.img ,解壓完會是下面這樣
四谚赎、打開ramdisk目錄下的 default.prop文件并修改相關(guān)參數(shù),我這里把ro.debuggable 設(shè)為1; 保存退出
五闸盔、現(xiàn)在開始打包迎吵,點擊右下角+選擇 repack,會打包生成一個名為image-new.img的文件蔫巩。長按將文件導(dǎo)入到sdcard快压,并將此文件pull到電腦荧缘,修改名字為boot.img截粗。
到這為止就制作完事了意推,很簡潔菊值。
開始刷入boot
手機關(guān)機之后按住電源加音量減(我這里是這樣,不同手機可能不同) 進(jìn)入刷機模式儿子。手機連上電腦
打開命令行
輸入 ./fastboot devices 查看是否連接上手機
接著輸入 ./fastboot flash boot boot.img
提示這樣表示成功愉适。
輸入 ./fastboot reboot 重啟手機
開機之后维咸,連上手機打開ADM 看到下面這樣說明就修改成功了。
好了,可以繼續(xù)學(xué)習(xí)了附井。
Image Kitchen for Android 百度網(wǎng)盤 密碼: mepk