2020年3月15日 星期日

[Android] 從紅米 note5 中取得 MIUI 原始碼

網路上有很多 android 反編譯的教學文章,教你怎麼反編譯 android 手機的 rom,不過手機廠的 rom 檔案格式日新月異,反編譯工具未必能跟得上 rom 格式改版的速度,像我剛買紅米 note 5 遇到 app 開發問題時,想反編譯 note 5 的 rom 來看,就遇到問題卡關了很久。

後來想到了新的思路,如果能直接從手機裡抓 binary 出來,不是就不用解包 rom 了?後來進手機裡看了一下,真的有我要找的檔案。

後來將這包 jar 檔反編譯,也順利找到了問題點,是紅米對 Android 客製化的機制造成 app 的問題(Android 碎片化,又是另一個頭痛的議題)。

其實系統裡面有些部分不一定要反編譯 rom 才能得到,像我是想要看的 service.jar 裡面的 code,因為這包其實有在紅米手機裡,直接從手機裡抓出來就好了。既方便不用解包 rom,又能確保反編譯出來的一定是手機上在運行的 code。若是要查看系統 app 的 code,因為無法從手機直接抓系統 app 的 apk 出來使用,這時就再去抓 rom 來反編譯就好。


沒有留言:

張貼留言