2020年3月15日 星期日

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

markdown 網路上有很多 android 反編譯的教學文章,教你怎麼反編譯 android 手機的 rom,不過手機廠的 rom 檔案格式日新月異,反編譯工具未必能跟得上 rom 格式改版的速度,像我剛買紅米 note 5 遇到 app 開發問題時,想反編譯 note 5 的 rom 來看,就遇到問題卡關了很久。 後來想到了新的思路,如果能直接從手機裡抓 binary 出來,不是就不用解包 rom 了?後來進手機裡看了一下,真的有我要找的檔案。 ![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_1aSy-8Q1k8LrOGXUPnn0I2CRe6wOJtMMrgXbjoqq_5Y4CfaqZNhOSrEftLLIWiZs9wM6C_CkogYfbrCTAjU8c8yxxNy2zmZtZiHQ6Z4on8y91HDyVYmgUmryIKIlmBaSp9POv9rf2i0t/s1600/Image+1.png) 後來將這包 jar 檔反編譯,也順利找到了問題點,是紅米對 Android 客製化的機制造成 app 的問題(Android 碎片化,又是另一個頭痛的議題)。 其實系統裡面有些部分不一定要反編譯 rom 才能得到,像我是想要看的 service.jar 裡面的 code,因為這包其實有在紅米手機裡,直接從手機裡抓出來就好了。既方便不用解包 rom,又能確保反編譯出來的一定是手機上在運行的 code。若是要查看系統 app 的 code,因為無法從手機直接抓系統 app 的 apk 出來使用,這時就再去抓 rom 來反編譯就好。 --- * [將.apk 和.odex 合併的簡單記錄](https://www.icka.org/1426/how-to-install-apk-with-odex-file) * [android-反編譯工具教學-dex2jar 和jd-gui](https://zpspu.pixnet.net/blog/post/330274885-android-%E5%8F%8D%E7%B7%A8%E8%AD%AF%E5%B7%A5%E5%85%B7%E6%95%99%E5%AD%B8-dex2jar-%E5%92%8Cjd-gui) * [人人都會的 apk 反編譯](http://huli.logdown.com/posts/661513-android-apk-decompile) * [去你妹的廠商改固件,看我逆向小米rom層應用做碎片化適配](https://www.jianshu.com/p/6f313b4876ab)

沒有留言:

張貼留言