【安卓系列(一)】史上最不正經的安卓刷機教程

2021-02-23 BAYMAX丶逆向安全
不正經的安卓刷機教程

渣男最近想了解一些安卓方面的東西, 於是就想著整理一個系列出來.

玩安卓嘛, 刷機自然是要做的第一件事, 但是這種教程網上一搜一大堆, 但還是想著整理一下吧, 畢竟我是一隻小菜雞.

名詞解釋 AOSP

AOSP, 全稱 Android Open Source Project, 也就是android源碼的簡稱, 使用git管理, 直接編譯aosp後得到的android系統就叫原生android.AOSP 託管在谷歌的伺服器上, 國內有提供清華源下載.

鏡像 - image

常見的鏡像名稱有:Factory Images(工廠鏡像)、OTA Image(升級包)、ROM 包(廠商包)


Factory Images(工廠鏡像)

顧名思義, 就是手機出廠時安裝的系統鏡像.

Google親兒子, Nexus和Pixel系列適配的工廠鏡像

下載連結:https://developers.google.com/android/images#angler

OTA Image(升級包)

OTA, over-the-air, 在線下載的意思;OTA Image, 即是工廠鏡像在經過時間累積的更新包,主要升級基礎作業系統、系統分區上安裝的只讀應用或時區規則.

OTA Image 分為 差量(Incremental OTA )升級 和 全量(Full OTA)升級, 全量包在Google有下載連結(https://developers.google.com/android/ota)

簡單提一下A/B系統更新, 即在OTA升級過程中使用的一種無縫更新手段, 在磁碟上開闢A/B存儲空間, 從而在OTA更新期間不會打斷用戶 和 失敗回滾

Driver Binaries(驅動)

開放不開源的安卓, 把驅動放在了HAL(硬體抽象)層, 具體實現由廠商向處理, 從而實現開源和商業化完美結合.

這也就是不同的安卓手機為什麼不能隨便刷來刷去的原因.當然於Google親兒子系列來講:驅動自然是有的搞, Nexus 6P以前Google有專門提供驅動的二進位文件(https://developers.google.com/android/drivers), 後續驅動則需要從工廠鏡像中分離vendor.img, 再放入構建的AOSP生成自定義ROM.

如果不考慮從AOSP構建原生安卓的話, 那麼驅動的問題不是我們考慮的內容.

ROM 包(廠商包)

現在對於ROM包就很好理解了, 無非就是廠商在保證安卓框架不變的情況下自定義了部分安卓驅動, 加入了一些私有元素得到的安卓鏡像文件.

當然對於非兒子系列手機, 也不是不能編譯AOSP刷入手機, 可以下載手機型號對應的CM(Cyanogenmod團隊的簡稱)源碼進行編譯, 具體流程 百度一下.

代號

安卓代號

安卓代號是依據字母表排列的, 常見的安卓代號和Windows磁碟命名一樣, 沒有A/B(沒見過不代表不存在哦), 從Android1.0開始, 以吃的命名Cupcake(紙杯蛋糕)、Donut(甜甜圈)、Eclair(閃電泡芙)、Froyo(優格冰淇淋)、Gingerbread(薑餅)、Honeycomb(蜂巢)[來源請求]、Ice Cream Sandwich(冰淇淋三明治)、Jelly Bean(果凍豆)、KitKat(奇巧巧克力)、Lollipop(棒棒糖)、Marshmallow(棉花糖)、Nougat(牛軋糖)、Oreo(奧利奧)、Pie(派), 但從 Android10 也就是Android Q 開始 便沒有這種命名方式了.

API 級別

API 級別, 是Android 平臺版本提供的框架 API 修訂版, 利用它和底層 Android 系統進行交互, 每個 Android 版本正好對應於一個 API 級別.

如:

名稱代號版本API級別Android 8Oreo8.026

SDK/NDK

簡單說, 

SDK(sortware development kit, 軟體開發工具包)是 安卓app開發使用的api(java層);

NDK(Native Development Kit)是 安卓app支持C開發的開端(SO, 底層)

編譯代號

AOSP源碼每個版本都有一個編譯代號,例如:官網提供(https://source.android.com/source/build-numbers.html#source-code-tags-and-builds)分支號android-7.1.2_r12, 7.1.2 是大版本號,r12是小版本號, 編譯代號則是N2G47W

編譯代號分支號版本支持的親兒子N2G47Wandroid-7.1.2_r12NougatNexus 5X、Nexus 6P、Pixel C

兒子代號

Google親兒子系列手機代號名稱,如: 

Nexus 6P 對應代號 angler 

Pixel 5  對應代號 redfin

命令fastboot命令含義fastboot devices顯示連接的 Android 設備的序列號fastboot oem/flashing unlock解開 bootloader 鎖(舊設備是oem, Nexus5以後是flashing)fastboot oem/flashing lock恢復 bootloader 鎖(同上)fastboot flash [filename]在 bootloader 模式中向設備刷入文件Recovery

安卓中的Recovery是指手機的 Recovery Mode(恢復模式,俗稱工廠模式)。這是一種可以對安卓手機內部的數據或系統進行修改的模式。Recovery 的定位類似 PC 平臺的 WinPE,在這個模式下我們可以刷入新的 ROM 包,或者對已有的系統進行備份或升級,也可以在此恢復出廠設置。

官方的(手機出廠自帶的) Recovery 做了限制,無法刷入第三方的 ROM 包(刷機包),因此一般我們要先刷入第三方的 Recovery( 大名鼎鼎的 twrp ),以解除限制和獲得更多功能。

刷機

基本刷機

網上教程很多, 就不過多介紹了.

adb reboot bootloader, 重啟手機至bootloader解壓鏡像, 執行flash-all腳本即可(原生或廠商rom到這 就已經刷機完畢了)..

root (nexus 6P, android 8)

下載twrp 官網提供的angler Recovery 鏡像(https://dl.twrp.me/angler/);下載新版 Magisk(https://github.com/topjohnwu/Magisk/releases)到手機sd卡目錄adb reboot bootloader, 重啟至bootloader.fastboot flash recovery twrp.img執行完上一步, 別重啟, 否則會恢復到原來的狀態.. 按住音量鍵, 選擇Recover MOde 啟動 TWRP, 此時twrp會修補ROM, 防止恢復可能遇到的問題 fastboot: error: Couldn't parse partition size '0x'.

剛遇到這個問題我也沒看懂.. 簡單查了一下, 說是沒區分清楚AB區..

文章1(https://gitlab.e.foundation/e/backlog/-/issues/1636/), 解決方法使用命令, but 沒用

# switch a/b slot
fastboot getvar current-slot
fastboot --set-active=a 

fastboot flash boot_a boot.img

最終解決方案, (忘記在哪裡了, 沒留下連結

fastboot flash bootloader bootloader-angler-angler-03.79.img
fastboot reboot-bootloader
sleep 5
fastboot flash radio radio-angler-angler-03.87.img
fastboot reboot-bootloader
sleep 5
#fastboot -w update image-angler-opm6.171019.030.h1.zip
fastboot flash vendor vendor.img
fastboot reboot-bootloader
sleep 5

fastboot flash system system.img
fastboot flash:raw boot boot.img  // 重點是這裡.
fastboot flash recovery recovery.img

https問題(時區)

現象: 剛裝完連接好wifi後, 網頁打不開, 提示https危險;應用也打不開, 提示網絡錯誤.. 等等

由於是原生鏡像的問題, 連接的是Google的伺服器, 在初始化設置時沒有獲得時區設置,導致 https 時間戳 不正確, 從而連不上網..

解決方案: 修改時間即可

chmod問題

現象: 已有root權限 在執行chmod時提示Operation not permitted, 可能 是在操作 system分區, 則需將system 分區掛載為可讀可寫..

解決方案, 操作步驟:

1、mount ;獲取system的掛載點,如/dev/block/mmcblk0p43 /system


angler:/ # mount | grep system 
輸出
    /dev/block/mmcblk0p43 on /system type ext4 (ro,seclabel,relatime,inode_readahead_blks=8)
    /sbin/.magisk/block/system on /sbin/.magisk/mirror/system type ext4 (ro,seclabel,relatime,inode_readahead_blks=8)
    ...

2、mount -o remount -rw /dev/block/mmcblk0p43  ;通過mount命令重新掛載根目錄修改讀寫權權限, (system的掛載點)

3、此時, chmod 便有修改system裡面文件的的權限

4、關於android 中的remount, 居然沒有--help列印,記錄一下:

mount -o remount -rw /system
mount -o remount,rw /system 

總結 應該是 史上 最不正經的安卓刷機教程 了, 主要是 安卓刷機 也太大眾了;由於新公眾號 不能在文章直接留言, so, 如果有需要或有問題, 可直接發送內容到公眾號即可;

相關焦點

  • 安卓怎麼刷機 安卓手機刷機教程【詳解】
    現如今安卓手機成為了移動互聯行業的主流,而安卓手機的刷機也成為了一種手機文化,今天小編就以HTC手機為例,給大家演示一下安卓刷機教程,感興趣的朋友們可以參考本文,詳細了解 安卓手機如何刷機 。  安卓刷機教程步驟一、手機連接電腦。  1、在百度下載「刷機精靈」軟體,並啟動安裝程序。
  • 安卓手機開不了機怎麼刷機 無法開機刷機教程
    使用安卓手機突然開不了機,很多人想通過刷機的方法使手機系統格式化。但是安卓手機開不了機怎麼刷機?很多朋友可能會覺得開不了機就無法刷機,其實安卓手機在開不了機的情況下大家可以通過使用工具進行刷機。以下是安卓手機無法開機刷機教程,一起來了解下具體內容吧!
  • 安卓手機不開機怎麼刷機 安卓手機的刷機步驟【教程】
    安卓手機不開機怎麼刷機? 由於錯誤的一些操作,很容易讓安卓手機無法正常開機,遇到這種情況,我們通常只有通過刷機來解決了。然後,很多新手朋友對於安卓手機不開機怎麼刷機不太了解,本文主要分享一下安卓手機變磚、不能開機的刷機步驟。
  • 安卓手機刷機步驟技巧大全 手機刷機完美教程
    安卓手機刷機步驟技巧大全 手機刷機完美教程時間:2017-06-17 17:02   來源:三聯   責任編輯:沫朵 川北在線核心提示:原標題:安卓手機刷機步驟技巧大全 手機刷機完美教程 關於安卓手機刷機步驟技巧大全 1、進入fastboot模式的方法:關機狀態下長按返回鍵和關機鍵。
  • 安卓4.0如何刷機 安卓4.0刷機步驟介紹【教程】
    簡單幾步,小編教你如何為安卓刷機,Android 4.0刷機,你也可以的!  【Android 4.0刷機教程】  一、什麼是root? root相當於Windows中的管理員權限,root權限默認是不允許用戶使用的,因為用戶可能會誤操作或者運行到惡意軟體而通過root權限破壞手機文件系統。  二、那麼為什麼要root呢?
  • 全系列nexus設備安卓7.0 Nougat NRD90M+刷機+解鎖bl+安卓7.0 root教程
    最後更新於2016年8月26號本教程為通用教程(適用於nexus 5x/6/6p/9和htc nexus)最近太忙了,沒能第一時間發布,今天抽空梳理了一下,關於nexus系統基本的刷機,解鎖bl,刷第三方recovery,root安卓7.0在這個教程裡都有涉及。
  • 怎麼給安卓手機刷機 安卓手機刷機方法【詳細介紹】
    在之前的教程中,我們給大家推薦了不少的刷機軟體,其中,就有網友對完美刷機這款刷機軟體感興趣,那麼,這款軟體怎麼給安卓手機刷機呢?在今天的教程中,我們就給大家講解一下完美刷機的使用方法,非常的簡單哦!
  • 安卓手機怎麼刷機?手機刷機完美教程!
    導語:安卓手機怎麼刷機?手機刷機完美教程,只要認真閱讀本文章,不忽略每一個步驟,不缺少必要的文件,可確保一次刷機成功!  你會獲得成功的喜悅!!!  1、只要是和電腦有連接的機器就能自己刷,不論是正常使用中還是白屏中。磚塊(死機)也能通過軟體復活的,不要輕易放棄!
  • 安卓怎麼刷機 安卓刷機方法【詳細介紹】
    相信大家都聽過這麼一句話:刷機有風險,下手需謹慎,不錯,先不提刷機過程中會遭遇的各種問題,單單是如何選擇刷機小工具,就難住了那些機器小白的女生們,為此,現在就特別為這些人奉上新手不得不看的小方法。然後就是root了,root就是手機的神經中樞,它可以訪問和修改你手機幾乎所有的文件,這些東西可能是製作手機的公司不願意你修改和觸碰的東西,因為他們有可能影響到手機的穩定,還容易被一些黑客入侵。但是,因為安卓系統的開源性,那就註定了,安卓手機root權限獲取是必然的。說到這就又回到了我們的主題上課,獲取root權限的刷機,又回到刷機上。  刷機其實很簡單,步驟也很容易。
  • 手機簡訊刪除了怎麼恢復(含蘋果安卓):史上最全教程
    手機簡訊刪除了怎麼恢復(含蘋果安卓):史上最全教程 手機簡訊恢復技術自智慧型手機興起以來,一直是IT人士研究的重點,經過幾年的發展,恢復技術越來越完善。
  • 安卓美化神器—Xposed史上最詳細教程
    喜歡搞機的機友們總是能把自己的手機用出不一樣的感覺,他們的手機總是能保持流暢,通知欄也沒有那麼多無用的推送,電池也總是很耐用。
  • 召喚小白鼠:Nexus 4安卓4.3刷機教程
    雖然只是個系統轉儲鏡像(system dump)而不是正常的刷機包,但是經過高手們的改造,已經可以很簡單地刷上了,當然僅限於Nexus 4。這個轉儲鏡像最初是TWRP的一個備份,只能用TWRP 2.5或更高版本恢復,然後安卓刷機高手gmillz將它改造成了zip刷機包,可使用任何Recovery恢復工具刷入,而且還是預先做好了root。
  • 安卓8.0如何安裝教程呢 谷歌android o刷機教程
    安卓8.0怎麼安裝教程來啦!安卓8.0已經發布了,相信很多用戶都想要馬上體驗,下文介紹谷歌android o刷機教程,一起來了解下吧!  谷歌android o刷機教程:   谷歌面向開發者推出了首個Android O預覽版系統,這也是未來的安卓8.0系統,預計安卓8.0正式版將在今年晚些時候發布。
  • 科普:安卓刷機基礎知識
    對安卓手機玩家來說,刷機可謂是一門必修課,而對小編來講,刷機更是一種「娛樂方式」。相信仍有讀者對刷機的中一些概念不是特別熟悉,不過不用擔心,今天,小編就給大家講講安卓刷機的那些事兒。因為針對手機的安卓系統通常使用只讀存儲鏡像(ReadOnlyMemoryImage)的方式發布,雖然嚴格意義上這種說法並不準確,不過習慣上,我們將ROM包指代為系統刷機包。  什麼是內核  內核,顧名思義,這是我們的手機種作業系統的核心,它提供作業系統最基本的功能。
  • 哪些中國安卓用戶最愛刷機?
    隨著安卓手機市場的繼續擴大,第三方ROM的興起發展和刷機市場的成熟,刷機不再只是技術宅的專利,越來越多的普通用戶也開始熱衷於刷機。用戶通過刷機,刷入新的手機作業系統來解決手機耗電快、卡頓閃退、界面不美觀、性能不足等問題。
  • 安卓手機TWRP_Recovery卡刷圖文教程 安卓TWRP下載+TWRP刷機報錯解決合集-2021年精編版本
    程針對小白第一次刷機,刷機請嚴格根據操作操作,本文2021年再次整理,新增刷機錯誤 解決方法,常見搞機刷機問題合集,TWRP機型匯總等,幫助更多小白學會安卓玩機 TWRP卡刷到底是什麼意思 最近有很多小夥伴問怎麼去卡刷,卡刷的操作是什麼,什麼是卡刷,小編就仔細來寫一下 卡刷教程吧,記住,我們所說的卡刷,並不是僅僅針對於內存卡刷機,手機自帶的空間也 可以存放刷機包,進行刷機
  • 安卓手機怎麼刷機 安卓手機刷機妙計
    如今,使用安卓手機的用戶已經越來越多。不過刷機一直難倒很多的手機用戶,安卓手機的刷機也同樣不容易。接下來,小編要介紹一個安卓手機通用的刷機技巧。 安卓手機  廢話不多說,下面為你講述整個刷機的過程吧!注意,刷機前別忘了把名片,備忘錄,簡訊,等等一些重要的東西備份一下!
  • Nexus 4安卓4.3如何刷機
    雖然是一個系統轉儲存的鏡像(system dump)而不是正常的刷機包,但是經過了高手的改造,Nexus 4已經可以簡單刷上。初初這個轉儲鏡像是TWRP的一個備份,並不能通過Recovery等恢復工具刷入,不過安卓的高手將其改造成了常見的Zip刷機包,這就可以方便用戶刷入。而且這個刷機包已經預先進行了ROOT。
  • 安卓手機怎麼刷機 安卓手機如何刷機
    在智慧型手機剛出來的時候,大多數人接觸的第一個手機都是安卓手機,但是安卓手機用一段時間過後就會出現卡機的問題,這時候我們就可以用刷機來解決,那安卓手機怎麼刷機呢?一起來看看吧。安卓手機怎麼刷機步驟一:我們需要下載並安裝一個叫刷機精靈的軟體在電腦上,然後去名字叫"ROM之家"
  • 安卓手機必備刷機軟體!附使用教程,一鍵刷機,小白也能輕鬆入手
    當遇到安卓手機應用程式閃退、黑屏、卡死……你會怎麼辦?對於手機發燒友來說,這些都不是什麼大問題。但對於小白的我們,無論是進退恢復模式,還是對於刷機流程的細節把握,都是十分困難的,一不小心手機就變磚……今天就來為你們介紹一個專業、安全而且操作簡單的牛學長安卓手機修復工具。