如何查看華為EMUI系統APK源碼?


最近想看一下華為EMUI里面的某些系統APK是如何實現的。

如何獲取系統APK呢?

有兩種方式:

1.安裝豌豆莢,豌豆莢里有一個應用管理的功能,可以查看手機里的所有應用,包括系統應用。

可以使用該功能導出系統應用APK。

2.解包華為UPDATE.APP

(1)到華為EMUI官網下載相應的系統安裝包UPDATE.APP

(2)到華為花粉俱樂部論壇中,搜索HuaweiUpdateExtractor,當前能找到的最新版本是0.9.9.3

目前使用該版本一般都能解包成功。

解包成功后,得到很多img文件。

系統源碼主要在SYSTEM.img中,下一步就是如何解包img文件。

(3)用蘑菇ROM助手解包img

通過蘑菇ROM助手的IMG提取功能,但是有些img無法解包,比如RECOVERY.img,不知道是什么原因。

----------------------------------------------------分割線--------------------------------------------------------------------------

解包SYSTEM.img成功后,就可以看到系統的內容。

app路徑下有所有系統應用,找到相應的APK,進行反編譯即可看到源碼。

APK反編譯方法有很多,此篇不進行贅述。

APK第一步反編譯后只能得到smali文件,若要查看java文件,可以借助Smali2Java工具,但是這個工具已經很久沒有提供支持,不一定能轉換成功。

懂Smali語法后,可以直接查看Smali文件,也能理解APK的實現細節。

--------------------------------------------------分割線----------------------------------------------------------------------------

今天解包EMUI5.1的安裝包后發現,所有系統應用都進行了odex化,即每個應用都分為odex和apk文件,如果直接反編譯apk文件,只能得到資源文件,

為什么odex化?可以參考這篇文章:揭秘ODEX——有ODEX版ROM與無ODEX版ROM區別 
據說這樣系統升級時第一次啟動速度會加快。

 反編譯odex可以用baksmali,但是很遺憾,今天下載最新版本baksmali-2.1.2,使用時出現:Unsupported oat version:45錯誤,

反編譯無法進行,到官網查看后發現:

也就是說目前不支持45版本。暫時沒有找到解決辦法。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM