ReKernelFlasher
Android 核心刷寫工具,支援在已 root 裝置上刷入、備份、還原 Android 核心映像檔。
基於 KernelFlasher 二次開發,由 Bacillusf 維護。

靈感
原版 KernelFlasher 對新手很不友善,沒有二次彈窗確認,容易刷錯分區,很多新手沒有備份意識,刷錯了只能無助地等待全量包...而且原倉庫已經封存,於是我做了這個分支
功能
文件/docs
使用文件(中文)
Usage (English)
首頁
| 功能 | 說明 |
|---|
| 裝置資訊 | 顯示型號、建置版本、Android 版本、應用程式版本、核心版本、Root 管理員(KernelSU/Magisk/APatch)、槽位後綴、SUSFS 版本、Boot HAL 版本 |
| 重新啟動選單 | 右上角按鈕展開,支援重新啟動至系統/Recovery/Bootloader/Download/EDL,每次帶確認彈窗 |
刷入
| 功能 | 說明 |
|---|
| 槽位管理 | 檢視 A/B 槽位資訊(可啟動、已標記成功、Boot SHA1、映像格式、ramdisk 資訊) |
| 刷入 AK3 Zip | 選擇 AnyKernel3 相容 zip 刷入 |
| 刷入 AK3 Zip (mkbootfs) | 以 mkbootfs 模式刷入 AK3 zip |
| 刷入 KernelSU 驅動程式 | 刷入 KernelSU LKM 核心模組 |
| 刷入分區映像檔 | 選擇 .img 檔案刷入指定分區 |
| 備份分區 | 選擇分區備份到本機 |
| 還原備份 | 從歷史備份還原分區 |
| vendor_dlkm 管理 | 掛載/卸載/映射/取消映射 vendor_dlkm 分區 |
| 檢查核心版本 | 提取目前 boot 映像檔中的核心版本字串 |
| 操作歷史 | 檢視所有刷入/備份/重新啟動等操作記錄 |
設定
| 功能 | 說明 |
|---|
| 備份管理 | 檢視和管理所有備份 |
| 更新來源 | 新增和管理核心更新 JSON URL |
| 自動備份 | 開關控制,開啟後刷入分區或 AK3 前自動備份目標分區到 /sdcard/KernelFlasher-AutoBackup/ |
| 檢視自動備份記錄 | 顯示自動備份歷史,長按可定位到檔案 |
| 儲存 ramoops | 儲存核心崩潰日誌 |
| 儲存 dmesg | 儲存核心日誌 |
| 儲存 logcat | 儲存系統日誌 |
| 介面縮放 (DPI) | 拖曳滑桿調整介面縮放比例(50%-150%),點擊套用後生效 |
二次確認
所有操作均有確認彈窗(帶漸入動畫),包括:
- 刷入 AK3/映像檔/KernelSU 驅動程式 → 顯示來源路徑 → 目標分區路徑
- 備份/還原/刪除分區
- 重新啟動至各模式
操作歷史
- 持久化儲存到
/sdcard/KernelFlasher/history.json - 記錄格式:
yyyy年MM月dd日HH時 操作描述 - 支援清除歷史
自動備份
- 開啟後,刷入前自動
dd 提取目標分區映像檔 - 儲存路徑:
/sdcard/KernelFlasher-AutoBackup/{unix時間戳}/分區名.img - 同時產生
backup.yml 中繼資料和 summary.json 總索引 - 記錄頁面長按可呼叫系統檔案管理員開啟備份檔案
技術棧
| 類別 | 技術 |
|---|
| 語言 | Kotlin |
| UI | Jetpack Compose + Material3 |
| 架構 | MVVM |
| Root | libsu |
| 資料庫 | Room |
| 序列化 | kotlinx.serialization |
| HTTP | OkHttp + Retrofit |
原生二進位檔
| 檔案 | 用途 |
|---|
| magiskboot | Boot 映像檔解包/打包 |
| lptools_static | 邏輯分區管理 |
| httools_static | Fstab 匯出、AVB、掛載 |
| bootctl | A/B 槽位控制 |
| busybox | 通用 shell 工具集 |
建置
# 前置條件:JDK 21、Android SDK (compileSdk 37)
./gradlew assembleDebug # 偵錯版
./gradlew assembleRelease # 發布版