最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

[指南Vol.4專欄版]KernelSu的概念與安裝教程

2023-04-08 18:43 作者:FlashCorpa  | 我要投稿

最近在玩機(jī)圈中,有一個(gè)不溫不火的小話題

KernelSu

一個(gè)內(nèi)核級(jí)別的ROOT管理器

他是什么意思?如何安裝使用?

首先,我們需要了解KernelSu的概念。

Kernel,翻譯過(guò)來(lái)就是內(nèi)核,什么是內(nèi)核?

Android 設(shè)備的啟動(dòng)分為三個(gè)階段:

1.BootLoader: Android設(shè)備打開電源后,首先會(huì)從處理器片上ROM的啟動(dòng)引導(dǎo)代碼開始執(zhí)行,尋找Bootloader代碼,并加載到內(nèi)存。

2.Linux Kernel: Bootloader開始執(zhí)行,首先負(fù)責(zé)完成硬件的初始化,然后找到Linux內(nèi)核代碼,并加載到內(nèi)存。


3.Android 系統(tǒng)服務(wù): Linux內(nèi)核開始啟動(dòng),初始化各種軟硬件環(huán)境,加載驅(qū)動(dòng)程序,掛載根文件系統(tǒng),并執(zhí)行init程序,由此開啟Android的世界。

Android系統(tǒng)實(shí)際上是運(yùn)行在Linux Kernel之上的一系列系統(tǒng)服務(wù)進(jìn)程。

為什么可以 Root

在類Unix系統(tǒng)中,一切皆文件。文件結(jié)構(gòu)通過(guò)某種樹狀的機(jī)制組織起來(lái),并且最終歸于一個(gè)起源:根目錄,root。 這個(gè)根目錄的修改權(quán)限是較為敏感的系統(tǒng)操作,同時(shí)考慮到系統(tǒng)安全性與穩(wěn)定性,也是一般不會(huì)為普通用戶開放的權(quán)限。 這時(shí),為了更高的系統(tǒng)可玩性,用戶可能會(huì)去獲得這個(gè)權(quán)限。在多用戶機(jī)制中,得到這一權(quán)限的用戶被稱為root用戶。

KernelSU

KernelSU,顧名思義,就是基于內(nèi)核的 SU。它通過(guò)自定義內(nèi)核,直接在內(nèi)核中賦予目標(biāo)進(jìn)程 root 權(quán)限。

由于 KernelSU 的實(shí)現(xiàn)需要自定義內(nèi)核,而 Android 系統(tǒng)的碎片化極其嚴(yán)重,又由于 Linux 內(nèi)核不同版本之間沒有兼容性可言;因此之前的 KernelSU 方案很難擁有通用性:你必須給每個(gè)型號(hào)的設(shè)備編譯一個(gè)自定義內(nèi)核,這幾乎是不可能實(shí)現(xiàn)的。另外,之前的 KernelSU 實(shí)現(xiàn)沒有鑒權(quán)系統(tǒng),系統(tǒng)中的任何進(jìn)程,無(wú)需任何授權(quán),都可以直接通過(guò) su 訪問(wèn)到 root 權(quán)限;這對(duì)普通用戶來(lái)說(shuō)是難以接受的:隨便一個(gè) App 一上來(lái)就有可能控制你的整個(gè)手機(jī)。

在GKI2.0之前,這是不可能實(shí)現(xiàn)的事情。而GKI2.0帶來(lái)了內(nèi)核的通用性,使得KernelSU的推廣也成為了可能。


特性

基于內(nèi)核的 su 和權(quán)限管理。

基于 overlayfs 的模塊系統(tǒng)。

GKI(Gerneric Kernel Image,通用內(nèi)核鏡像)

根據(jù)谷歌官方的文檔中記載,Android 通用內(nèi)核 (ACK) 是所有 Android 產(chǎn)品內(nèi)核的基礎(chǔ)。供應(yīng)商內(nèi)核和設(shè)備內(nèi)核位于 ACK 的下游。供應(yīng)商通過(guò)修改內(nèi)核源代碼并添加設(shè)備驅(qū)動(dòng)程序,添加了對(duì) SoC 和外圍設(shè)備的支持。

因此,設(shè)備內(nèi)核由以下部分組成:


1.上游:來(lái)自 kernel.org 的 Linux 內(nèi)核

2.AOSP:AOSP 通用內(nèi)核的其他 Android 專用補(bǔ)丁程序

3.供應(yīng)商:供應(yīng)商提供的 SoC 和外圍設(shè)備支持以及優(yōu)化補(bǔ)丁程序

4.原始設(shè)備制造商:其他設(shè)備驅(qū)動(dòng)程序和自定義項(xiàng)

幾乎所有設(shè)備都具有自定義內(nèi)核。這就導(dǎo)致了內(nèi)核碎片化問(wèn)題。


內(nèi)核碎片化會(huì)對(duì) Android 社區(qū)產(chǎn)生若干負(fù)面影響。

1.安全更新需要耗費(fèi)大量人力

2.很難合并長(zhǎng)期支持的更新

3.妨礙 Android 平臺(tái)進(jìn)行版本升級(jí)

4.很難將內(nèi)核更改貢獻(xiàn)回上游 Linux


通用內(nèi)核映像 (GKI) 項(xiàng)目通過(guò)統(tǒng)一核心內(nèi)核并將 SoC 和板級(jí)支持從核心內(nèi)核移至可加載模塊中,解決了內(nèi)核碎片化問(wèn)題。GKI 內(nèi)核為內(nèi)核模塊提供了穩(wěn)定的內(nèi)核模塊接口 (KMI),因此模塊和內(nèi)核可以獨(dú)立進(jìn)行更新。

KernelSU 安裝

首先檢查您的設(shè)備是否被支持

從 GitHub 或 酷安 下載 KernelSU 管理器應(yīng)用,然后將應(yīng)用程序安裝到設(shè)備并打開:


如果應(yīng)用程序顯示 “不支持”,則表示您的設(shè)備不支持 KernelSU,你需要自己編譯設(shè)備的內(nèi)核才能使用,KernelSU 官方不會(huì)也永遠(yuǎn)不會(huì)為你提供一個(gè)可以刷寫的 boot 鏡像。

如果應(yīng)用程序顯示 “未安裝”,那么 KernelSU 支持您的設(shè)備;可以進(jìn)行下一步操作。

KMI 查看

KMI 全稱 Kernel Module Interface,相同 KMI 的內(nèi)核版本是兼容的 這也是 GKI 中“通用”的含義所在;反之,如果 KMI 不同,那么這些內(nèi)核之間無(wú)法互相兼容,刷入與你設(shè)備 KMI 不同的內(nèi)核鏡像可能會(huì)導(dǎo)致死機(jī)。

具體來(lái)說(shuō),對(duì) GKI 的設(shè)備,其內(nèi)核版本格式應(yīng)該如下:


其中,w.x-zzz?為 KMI 版本。例如,一個(gè)設(shè)備內(nèi)核版本為5.10.101-android12-9-g30979850fc20,那么它的 KMI 為 5.10-android12-9;理論上刷入其他這個(gè) KMI 的內(nèi)核也能正常開機(jī)。

請(qǐng)注意,內(nèi)核版本中的 SubLevel 不屬于 KMI 的范疇!也就是說(shuō) 5.10.101-android12-9-g30979850fc20 與 5.10.137-android12-9-g30979850fc20 的 KMI 相同!(只看前兩個(gè)版本號(hào))

請(qǐng)注意:內(nèi)核版本與 Android 版本并不一定相同!


如果您發(fā)現(xiàn)您的內(nèi)核版本是 android12-5.10.101,而你 Android 系統(tǒng)的版本為 Android 13 或者其他;請(qǐng)不要覺得奇怪,因?yàn)?Android 系統(tǒng)的版本與 Linux 內(nèi)核的版本號(hào)不一定是一致的;Linux 內(nèi)核的版本號(hào)一般與設(shè)備出廠的時(shí)候自帶的 Android 系統(tǒng)的版本一致,如果后續(xù) Android 系統(tǒng)升級(jí),內(nèi)核版本一般不會(huì)發(fā)生變化。如果你需要刷機(jī),請(qǐng)以內(nèi)核版本為準(zhǔn)?。?/p>

安裝

KernelSU 的安裝方法有如下幾種,各自適用于不同的場(chǎng)景,請(qǐng)按需選擇:


1.使用自定義 Recovery(如 TWRP)安裝

2.使用內(nèi)核刷寫 App,如 (Franco Kernel Manager)安裝

3.使用 KernelSU 提供的 boot.img 使用 fastboot 安裝

4.手動(dòng)修補(bǔ) boot.img 然后安裝

使用自定義 Recovery 安裝

前提:你的設(shè)備含有第三方Recovery 如TWRP;如果只有官方 Recovery,請(qǐng)使用其他方法。


步驟:


在 KernelSU 的 Release 頁(yè)面 下載與你手機(jī)版本匹配的以 AnyKernel3 開頭的 zip 刷機(jī)包;例如,手機(jī)內(nèi)核版本為 android12-5.10.66,那么你應(yīng)該下載 AnyKernel3-android12-5.10.66_yyyy-MM.zip 這個(gè)文件(其中 yyyy 為年份,MM 為月份)。

重啟手機(jī)進(jìn)入 TWRP。

將 AnyKernel3-*.zip 放到手機(jī) /sdcard 然后在 TWRP 圖形界面選擇安裝。

這種方法適用于任何情況下的安裝(不限于初次安裝或者后續(xù)升級(jí)),只要你用 TWRP 就可以操作。

使用 KernelSU 提供的 boot.img 安裝

這種方法不需要你有 TWRP,也不需要你的手機(jī)有 root 權(quán)限;適用于你初次安裝 KernelSU。


首先找到合適的 boot.img

KernelSU 為 GKI 設(shè)備提供了通用的 boot.img


您可以從 GitHub Release下載 boot.img, 請(qǐng)注意您應(yīng)該使用正確版本的 boot.img. 例如,如果您的設(shè)備顯示內(nèi)核是 android12-5.10.101, 需要下載 android-5.10.101_yyyy-MM.boot-<format>.img.


其中 <format> 指的是你的官方 boot.img 的內(nèi)核壓縮格式,請(qǐng)檢查您原有 boot.img 的內(nèi)核壓縮格式,您應(yīng)該使用正確的格式,例如 lz4、gz;如果是用不正確的壓縮格式,刷入 boot 后可能無(wú)法開機(jī)。


小米設(shè)備通常使用 gz 或者 不壓縮。


然后將 boot.img 刷入設(shè)備


使用 adb 連接您的設(shè)備,然后 進(jìn)入 fastboot 模式,然后使用此命令刷入 KernelSU:


注意,boot是你設(shè)備的引導(dǎo)鏡像,如果出現(xiàn)問(wèn)題,會(huì)導(dǎo)致卡第一屏,請(qǐng)先備份設(shè)備原boot鏡像再操作


部分機(jī)型支持 fastboot boot-臨時(shí)啟動(dòng),可以先使用

如果刷寫后卡在第一屏怎么辦?刷回備份好的原boot鏡像即可恢復(fù),如果沒有備份,下載當(dāng)前系統(tǒng)的線刷包或卡刷包,提取boot鏡像刷回即可。


KernelSu的優(yōu)缺點(diǎn)

優(yōu)點(diǎn)

WSA 和運(yùn)行在容器上的 Android 也可以與 KernelSU 一起工作。

GKI 設(shè)備不用自行修補(bǔ)鏡像,更方便。

目前不會(huì)被檢測(cè)到(如果要用模塊的話會(huì)檢測(cè)overlayfs,只用su并不會(huì)被檢測(cè)到)

缺點(diǎn)

KernelSU 官方支持 GKI 2.0 的設(shè)備(內(nèi)核版本5.10以上);舊內(nèi)核也是兼容的(最低4.14+),不過(guò)需要自己編譯內(nèi)核。

KernelSU 的模塊系統(tǒng)與 Magisk 的 magic mount 有沖突,如果 KernelSU 中啟用了任何模塊,那么整個(gè) Magisk 將無(wú)法工作。

但是如果你只使用 KernelSU 的 su,那么它會(huì)和 Magisk 一起工作:KernelSU 修改 kernel 、 Magisk 修改 ramdisk。

模塊

ZygiskOnKernelSU 刷入此模塊后,其他常用模塊直接刷入(可能存在部分問(wèn)題)


無(wú)論何時(shí),請(qǐng)保管數(shù)據(jù),下期見。

引用文章

KernelSu部分概念(https://mp.weixin.qq.com/s?__biz=MjM5Njg5ODU2NA==&mid=2257500703&idx=1&sn=31e8d32ee4ac1122764db58d320493c4&chksm=a598287492efa1625dfc4ad932dee0f05d03acd834d7bd5b44daa657a1188aa5fc243fdf6329&scene=21#wechat_redirect)

谷歌官方文檔(https://source.android.com/docs/core/architecture/kernel/generic-kernel-image?hl=zh-cn)

KernelSu管理器下載(https://www.coolapk.com/apk/me.weishu.kernelsu)

KernelSU 的 Release 頁(yè)面(https://github.com/tiann/KernelSU/releases)

ZygiskOnKernelSU(https://github.com/Dr-TSNG/ZygiskOnKernelSU)



[指南Vol.4專欄版]KernelSu的概念與安裝教程的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
茌平县| 南阳市| 新化县| 灵山县| 乐东| 公主岭市| 颍上县| 集贤县| 马龙县| 桦南县| 沛县| 望江县| 桐柏县| 新竹县| 锡林浩特市| 专栏| 花垣县| 修文县| 光山县| 汉川市| 黄大仙区| 浮梁县| 南川市| 子长县| 江阴市| 南乐县| 牙克石市| 岳普湖县| 右玉县| 龙州县| 崇州市| 绥德县| 通山县| 湖南省| 萨迦县| 施秉县| 鸡西市| 黔西县| 伊金霍洛旗| 大余县| 九龙县|