LineageOS源碼定制手機系統
導語:
現在市場的手機基本就兩種: 蘋果機和android機。 今天我們不談蘋果機, 對小編我來講,那是個奢侈品, android是我的最愛。
對於一般android手機用戶來說,操作系統都是手機廠商(小米,華為。。。)自帶的,或者通過使用第三方(刷機精靈,。。。)刷新的。這些手機都有一個特別不好的地方,就是有很多預裝軟件,無法卸載,甚至系統中包含一些惡意軟件,病毒,偷窺你的隱私,竊取你的數據。
很多android手機用戶對此表示憂慮, 這種憂慮本省就是原因在於是資源信息的不對稱, 對於一般的用戶而言,我們無法判之一只手機系統的安全狀態。
但是對於你一個逆向分析師而言,不存在資源, 信息的不對稱,對於android系統是開放,只有部分設備相關的代碼不對外開放(為了保護設備商).我們完全可以android源碼來生成一個android系統,這個系統的源碼由於在我們手中,對我們完全可以掌控,你像android掌控力也大,需要的對android源碼進行大量的分析,這是后話了。總之,將主動權在自己手上,你才有更多的話語權!!!! 用android源碼編譯一個自己手機系統,除了安全之外,我們可以。
- 手機個性化, 修改手機代碼,讓自己手機系統與眾不同。比如修改手機的開機界面(如果你夠自戀,你可以修改你的美照,哈哈)
- 方便調試App(有些bug 已經無法在App層解釋,需要深入到系統理解)
- 黑科技(逆向別人的App, 修改系統行為,例如修改GPS系統)
總之,你能做些普通開發者做不到的功能,業內為“高級需求”
android源碼刷機資源
目前通過源碼刷機有兩種方式:
1. AOSP 源碼刷機, 條件:需要google手機一部
2. LineageOS/CM 源碼刷機,條件:LineageOS支持的手機一部。
由於本屌絲窮B一枚,買不起google手機,google手機價格昂貴,有些機型已超蘋果機。本人所在公司使用是公司的測試機-Remi3手機一部,如果有人需要源碼刷機的話,本屌絲免費刷機。除了android源碼外,我們還需要設相關的代碼和庫。如下圖示,Devicce Open Source, 設備廠商公開的代碼, Devicce Propritatry: 設備相關的庫代碼。

筆者所用刷機資源:
1、 Android源碼是LineageOS : https://github.com/lineageos
2、 設備相關代碼:TheMuppets: https://github.com/TheMuppets
3、 刷機工具: https://twrp.me/
4、
紅米3S (設備名ido)
5、 Ubuntu系統機虛擬 一台,磁盤資源100G以上
檢查你的手機是否只是LineageOS源碼刷機, 以紅米3為例
1. 訪問
https://github.com/lineageos,查詢設備是否支持紅米3S

2.單擊android_device_xiaomi_ido 看看對應android源碼的分支版本,筆者選擇的最新的cm14.1



刷機過程
1. 下載源碼前,Unbuntu是否支持翻牆。
wget https://raw.githubusercontent.com/racaljk/hosts/master/hosts -qO /tmp/hosts
sudo sh -c 'cat /tmp/hosts > /etc/hosts'
2.安裝並配置好repo 不細說
3.下載, 這個耗時比較久。
repo init -u git://github.com/LineageOS/android.git -b cm-14.1
repo sync -c -f -j8 --force-sync --no-clone-bundle
4.下載完后的,LineageOS的代碼,不好包含設備相關源碼, 執行以下命令,同步設備的公開代碼
source build/envsetup.sh
breakfast canccro
5.同步完設備代碼,此時我們需要同步設備私有庫。如下操作
在.repo/loccal_mainifest/roomsevice.xml 文件中新增一行:
<project name="TheMuppets/proprietary_vendor_xiaomi" path="vendor/xiaomi" remote="github" revision="cm-14.1"/>
然后執行repo sync 同步
6.編譯LineageOS源碼,生成ROM
source build/envsetup.sh
brunch ido
編譯完后就能在../out/target/product/ido 目錄下找到相應ROM啦

3, 使用twrp 刷機, 這個網上有很多教程, 不多言啦
刷機后續
刷機后,LineageOS啟動, LineageOS 是主動屏蔽了root管理權限的。我們需要去開啟root權限。筆者試過kingroot 開啟root失敗。所以使用root開啟包啟動root
<ignore_js_op style="word-wrap: break-word;">
addonsu-remove-arm64-signed.zip
只要是Arm64架構的CPU架構都可用
開啟包需要在恢復模式下刷入
最后附一個省電神器“黑域補丁”自動開啟包
注.黑域需要開啟USB測試連接電腦連接正常后
雙擊“黑域補丁制作byTinyfish.bat”安裝完成重啟手機
關於筆者:
微信公眾號:編碼安全

微信:蕉下客

郵箱: changle517318@sohu.om
-----------------------------------------------------------------------------------------------------
如果你覺得博客對你有用,且你手頭又有富裕,可以打賞一下!!!!
知識共享時代,做一個優秀內容提供者。
----------------------------------------------------------------------------------------------------