https://miflashpro.com/miflash-pro-v7-3-706-21

OrangeFox 除了刷机,
刷 ROM、刷 Magisk、刷补丁包、刷 kernel、刷 recovery、刷 firmware 包。有些 zip 是系统 ROM,有些是修补包,有些是 root 包,OrangeFox 提供的是安装入口。
Wipe cache、Dalvik/ART cache、Format Data、清除某些分区。这个能力很危险,因为它能直接删除系统或用户数据。刷不同系统前常用 Format Data,是为了清掉旧系统加密和用户数据结构,避免新系统无法启动。
它类似传统说的 Nandroid Backup,可以备份 boot、recovery、vendor、data 等分区。
但它不是万能保险。特别是 Android 11/12 以后,动态分区、加密 data、super 分区让完整备份恢复变复杂。重要照片、文件、聊天记录,还是应该在正常系统里另外备份。
如果 Android 系统坏了但 recovery 还能进,OrangeFox 可以用文件管理器、MTP、ADB 把文件复制出来。比如系统 bootloop,但 /data/media/0 能解密,就可以救照片、下载文件、ROM 包。
连接电脑类。
ADB、ADB Sideload、MTP 都属于这一块。
ADB Sideload 用来从电脑直接推送 zip 给 recovery 安装;MTP 用来像 U 盘一样复制文件;ADB shell 可以进入 recovery 命令行。
分区和挂载管理类。
挂载 system/vendor/data/cache,查看分区,修复文件系统,处理动态分区映射。这是高级功能,不理解时不要乱动。
调试和修复类。
导出日志、终端、修复 SELinux context、修复权限、查看刷机失败原因。开发者和排错时很有用。
一个运行在 recovery 分区里的独立维护系统
刷 ROM 时要分清两个区域:
overflow-visible!
/system、/vendor、/product、/system_ext
= 系统本体、厂商组件、驱动层
/data
= 用户数据、App 数据、内部存储、加密状态、系统设置
你刷 LineageOS 的 zip,主要替换的是系统相关分区。它不会天然"干净地接管"MIUI 留在 /data 里的所有东西。问题通常出在 /data。
为什么要 Format Data:
第一,MIUI 的 /data 很可能有自己的加密状态。新 ROM 启动时,如果不能正确解密旧 /data,就可能卡开机、要求密码、内部存储不可读、或者直接 bootloop。
第二,MIUI 和 LineageOS 的系统设置、权限、SELinux context、App 框架不同。旧 /data/system、/data/misc、/data/vendor 里有大量和原系统绑定的状态。新系统直接沿用,容易出现系统服务崩溃、指纹/锁屏异常、权限错乱。
第三,MIUI 有大量私有服务和系统 App 数据。LineageOS 没有这些组件,但 /data 里还残留它们的数据、权限、启动记录、配置文件。它们不一定直接"污染"系统,但会提高不稳定概率。
第四,Android 跨大版本时,/data 的数据结构也可能变化。你是从 MIUI Android 12 底包切到 LineageOS 21 / Android 14,跨度更大,所以 clean flash 更稳。
还有一个关键点:为什么 ROM 包要 Format Data 后再传进去?
因为 Format Data 会清空内部存储。你如果先把 ROM zip 放进手机,然后再 Format Data,ROM zip 也会被删掉。所以更稳的做法是:
overflow-visible!
先 Format Data
再 Reboot Recovery
再从电脑传 ROM zip
再刷
如果你有 U 盘 OTG 或外置 SD 卡,也可以提前把 ROM 包放外部介质,因为 Format Data 不会清外部介质。但放手机内部存储就会被清掉。

你的手机支持直接重启到 recovery(所以大概也有手機用不了,也大概是老式的,2022年左右可能),所以以后进入 OrangeFox 可以用
所以我才之後重啟一直在miui這個界面沒有變化,是因為目前裡面什麼都清空了,裡面的recovery也清空了,這個時候要recovery再做一遍,然後附上對的zip

adb devices
adb push Flashable-lineage-21.0-20240810-free-atom.zip /sdcard/


叫 LineageOS,不叫 Android的原因
它叫 LineageOS ,不是直接叫 Android,是因为它不是 Google 官方发布给你这台手机的"原厂 Android",而是一个 基于 Android/AOSP 的第三方系统发行版。
Android 可以理解成底层平台和开源基础;LineageOS 是把这个基础拿来整理、编译、适配、加功能、移除厂商东西之后形成的一个系统项目。LineageOS 官方自己的描述就是:它是一个免费开源系统,基于 Android mobile platform。lineageos.org
类比:
overflow-visible!
Linux = 内核/基础平台
Ubuntu / Arch / Debian = 基于 Linux 的发行版
Android / AOSP = 手机系统基础平台
LineageOS / Pixel Experience / crDroid = 基于 Android/AOSP 的第三方 ROM 发行版
MIUI / HyperOS / One UI = 厂商基于 Android 做的官方系统
所以你现在刷的不是"另一个非 Android 的系统"。它仍然是 Android 系列,只是它的发行版名字叫 LineageOS。它大概等于:
overflow-visible!
AOSP Android 14 基础
+ LineageOS 自己的系统应用、设置项、权限管理、更新框架、界面调整
+ atom 这台手机的 device tree
+ kernel / boot 相关镜像
+ vendor blobs / 硬件适配文件
= lineage-21.0-UNOFFICIAL-atom.zip
刷机包zip里在做什么,按责任层拆开看。
第一层是 系统文件 。
它会把 Android/LineageOS 的核心系统写到手机的系统相关分区里,比如 system、product、system_ext 等。Android 官方文档也说明,Android 设备的软件不是一个整体文件 ,而是拆在多个分区 里,每个分区负责不同部分。Android Open Source Project
第二层是 启动文件 。
ROM 包里通常会包含或更新 boot.img,里面有 kernel 和 ramdisk。手机开机时不是直接进入 Android 桌面,而是先经过 bootloader,再加载 boot image,再启动 Android userspace。
第三层是 设备适配 。
atom 这个包不是通用 Android 包。它包含给 Redmi 10X 5G 用的配置:分区怎么挂载、哪些硬件库要加载、指纹/相机/音频/传感器/屏幕参数怎么接、SELinux 规则怎么设。没有这一层,AOSP 本身不知道你的手机硬件怎么工作。
第四层是 vendor / proprietary blobs 的调用关系 。
很多硬件驱动不是 LineageOS 自己写的,也不是 AOSP 完全开源的,而是沿用小米官方系统里的闭源 vendor 文件。LineageOS 负责把 Android 14 的上层系统接到这些旧底层库上。这也是为什么民间 ROM 常有蓝牙、相机、VoLTE、指纹等 bug。
第五层是 安装脚本 。
你点 Flashable-lineage...zip 后,OrangeFox 不是简单"解压到手机"。它会读取 zip 里的安装脚本和 payload,把对应镜像/文件写入对应分区,设置权限、上下文、挂载点,有时还会处理 vbmeta、dtbo、vendor_boot、metadata 等。Android 官方 OTA 文档里也提到,完整更新包可以包含目标设备最终状态所需的 system、boot、recovery 等分区内容。Android Open Source Project
你现在这条链可以这样理解:
overflow-visible!
OrangeFox = 安装器 / 维护环境
Flashable-lineage zip = 安装包
LineageOS = 安装后运行的系统
Android/AOSP = LineageOS 的基础
atom = 这套安装包适配的具体硬件对象
所以"为什么不叫 Android"的核心原因是:
Android 是平台血统,LineageOS 是具体发行版名字。
為什麼叫 "Blob"?
Blob 原指「二進位大型物件」(Binary Large Object),在開源社群中,這個詞被用來嘲諷或代稱那些**「不知道裡面裝什麼、也無法修改」的黑盒子程式碼** 。
硬體製造商(如高通、聯發科、NVIDIA 等)為了保護商業機密,或是避免競爭對手抄襲技術,不願意公開讓硬體運作的核心技術文件與原始碼。因此,他們只提供封閉原始碼的二進制檔案給作業系統開發者。
Android 刷機: 在安裝非官方 Android 系統(如 LineageOS、/e/OS)時,刷機包通常無法包含這些底層硬體的原始碼,++必須++ 從原本的手機系統中提取這些廠商專有檔案(稱作 proprietary-blobs ) ,系統才能正常++驅動相機、通訊和螢幕等硬體++。
開源社群的兩難
- 好處: 有了這些 Blob,開源作業系統才能在各種複雜的手機或電腦硬體上順利運作。
- 壞處: 違背了完全開源自由(Free/Libre)的精神。因為無法檢視程式碼,開發者無法修復裡面的 Bug,也無法確定這些檔案中是否藏有安全性漏洞或後門。
第三方量化平台或交易機器人要求你填 Binance API key。你以為只是連接帳戶,其實對方如果保存不當、平台被黑、內部人員作惡,key 就可能外洩
所以就找小幣買,這樣可控。
ICO 不是一个实体,而是一种"首次代币发行/融资行为"。
ICO = Initial Coin Offering,意思是项目方第一次把自己的 token 拿出来卖给市场融资。它不是"某个公司/平台/钱包",而是一段发行与募资流程。比如项目方说:"我们发行 10 亿枚 ABC,其中 5% 拿出来卖,换 USDT/ETH/BNB 用于开发。"这整个行为就叫 ICO。Binance Academy 对 ICO 的定义也是"区块链项目通过出售加密货币来筹资"的方式。 Binance +1
Launchpad 更像是"交易所版 ICO",行业里通常叫 IEO。
IEO = Initial Exchange Offering。区别是:ICO 时代,项目方自己在官网/合约/钱包地址收钱,谁都能发,骗局很多;Launchpad/IEO 是交易所站出来筛选项目、设计认购规则、收用户资金、分配代币,然后通常安排上线交易。币安自己的介绍也把 Launchpad/Launchpool 放在"获得新 token"的产品体系里,Launchpool 是锁定资产获得空投,Launchpad 则偏向新币发行/认购。
一个简单例子:
项目 ABC 要在币安 Launchpad 卖 1000 万枚 ABC。
用户总共提交 100 万 BNB 认购。
你提交 10 BNB。
你的占比是 10 / 1,000,000 = 0.001%。
理论分配就是 1000 万枚 × 0.001% = 100 枚 ABC。
之后币安从你提交的 BNB 里扣掉对应金额,多余的 BNB 退回。
项目可能还有其他融资渠道。比如私募、VC 轮、团队份额、生态基金、空投、其他交易所发行、链上 DEX 流动性等。也就是说,币安不是唯一获得 token 的地方。
你可以把它理解成证券市场里的"券商承销/打新"类比:不是股票只属于这家券商用户,而是这家券商拿到一部分新股发行额度,让自己的客户参与申购。客户中签/分到额度以后,股票上市后其他人也可以买。
Launchpad 项目如果一上市就被大户收割散户,用户会把责任算到币安头上。限制额度、KYC、快照、认购上限,本质上是交易所的风控和声誉管理。
Launchpad 销售等很多部分。Launchpad 只是其中一小块。比如 Binance 公告过 Space ID 的总供应量是 20 亿枚,其中 1 亿枚,也就是 5%,分配给 Binance Launchpad;同时这个 Launchpad 销售还有总融资上限和单用户上限。�
项目方和币安都有谈判权。不是单边决定。通常大框架是项目方提出 tokenomics:总供应量、销售比例、融资需求、解锁安排、团队和投资人份额。币安会审查,并基于自己的 Launchpad 标准、用户规模、风控、合规、上市策略,要求调整销售额度、用户上限、价格、解锁规则或参与条件。
比如总发行量 10 亿枚:
团队:20%
投资人/私募:15%
生态基金:25%
社区/空投:15%
流动性/做市:10%
公开销售:5%
其他储备:10%
其中"公开销售 5% = 5000 万枚"里面,才可能继续拆:
Binance Launchpad:1000 万枚
OKX Jumpstart:500 万枚
Bybit Launchpad:500 万枚
项目官网吗/白名单销售:1000 万枚
DEX IDO:500 万枚
剩余公开销售储备:1500 万枚
所以你说的"拿五千万出来,币安一千万,别的交易所五百万"是可能存在的一种结构。
但很多 Binance Launchpad 项目不一定同时给很多交易所做初始发行。常见情况有几种:
第一种:币安独家首发。项目方只把公开销售额度放到 Binance Launchpad。其他交易所没有同阶段的认购额度,后面可能只是上线交易。
第二种:多平台分发。项目方把不同额度给不同交易所、DEX、官网白名单、社区销售。币安只是其中一个渠道。
二级市场 = 币已经发出来后,用户 A 卖给用户 B。
比如你在币安现货里买 BTC、ETH、某个新币,通常不是项目方直接卖给你,而是另一个用户/做市商卖给你。你的钱给了卖方,不是给项目方。
类比股票更直观:
公司 IPO 发新股给投资者,这是一级市场。
股票上市后,你在券商 App 里买卖腾讯、台积电、英伟达股票,这是二级市场。
币圈也是一样:
Launchpad/ICO/IDO:一级市场。
币安现货、合约、DEX 交易池:二级市场。
Launchpad allocation / public sale allocation / token sale allocation:这是给用户认购的新币销售额度。
Initial circulating supply:上线当天实际流通多少。
Market maker / liquidity provision:做市和流动性,不等于卖给用户。
Private sale / seed sale:早期投资人额度。
Airdrop / community rewards:空投或社区奖励,不是认购销售。
CEX = Centralized Exchange,中心化交易所,比如 Binance、OKX、Bybit。
DEX = Decentralized Exchange,去中心化交易所,比如 Uniswap、PancakeSwap、Curve。
所以 DEX 不是"decentralized X",而是:
D = Decentralized
E = Exchange
X = Exchange 里的 X 简写
因为英文里 Exchange 常被缩写成 X,比如 FX = Foreign Exchange,外汇。
I = Initial = 第一次
C = Coin = 币
E = Exchange = 交易所
O = Offering = 发行/发售
所以 ICO 和 IEO 的共同点是 Offering,都是"拿 token 出来卖/发行"。区别在中间那个字:
C:项目方自己发币卖。
E:通过交易所发币卖。
进 Fastboot,说明 音量下 + 电源 生效了;而 Recovery 通常是 音量上 + 电源。
手机连电脑,确保手机已经开了 USB debugging。如果没开,到:
overflow-visible!
Settings > About phone > Build number 连点 7 次
Settings > System > Developer options > USB debugging
能打开百度,说明 Wi-Fi、DHCP、DNS、路由基本都通了。為什麼?


Root 存在的原因,本质是:Android 默认把"用户"和"系统管理员"分开了;root 就是拿回系统管理员权限。
Android 底层是 Linux。Linux 里最高权限用户叫 root
可以读写系统关键目录、修改内核相关参数、控制进程、改权限、挂载分区、注入模块。
普通 App 默认没有这些权限。Android 这样设计,是为了安全:防止 App 随便读取别的 App 数据、改系统文件、监听输入、破坏启动链、偷取密钥。

Magisk 这类现代 root 工具的价值在于:它不是粗暴改 /system,而是主要通过修补 boot.img,在启动阶段插入自己的权限管理层。这样它可以做到"systemless root",即尽量不直接改系统分区。你要授权哪个 App root,由 Magisk 管理,而不是所有 App 自动拥有 root。
**Metered network(計量付費網路)**是指一種會限制資料使用量,或根據你消耗的流量來計算費用的網路連線。
核心運作機制
- 流量計費:超過規定額度會被收取額外費用,或遭遇網路降速。
- 常見類型:行動數據(4G/5G)、隨身Wi-Fi、有流量上限的家用寬頻。
- 系統識別:手機與電腦若連線至此類網路,通常會自動或手動開啟「計量付費連線」模式。

因为 Magisk 的 root 不是"在系统里安装一个 APK 就获得 root"。APK 只是管理器。真正让系统有 root 能力的部分,必须在开机最早期 被加载,而这个阶段发生在 boot.img 里。
Android 开机链大概是:
Bootloader
→ boot.img
→ kernel + ramdisk
→ init
→ 挂载 system/vendor/product 等分区
→ 启动 Android 系统
Magisk 要做的是在 init 附近插入自己的启动逻辑,也就是所谓 systemless root :尽量不直接改 /system 分区,而是改启动镜像里的 ramdisk/init 流程,让系统启动时把 Magisk 注入进去。Magisk 官方文档也写明:如果设备的 boot 分区有 ramdisk,就取 boot.img 或 init_boot.img,用 Magisk App 选择并修补该文件,然后把修补后的镜像刷回对应分区。Topjohnwu
Magisk.apk = 控制台 / 管理界面
boot.img = 开机发动机
magisk_patched.img = 被 Magisk 改造过的发动机
fastboot flash boot magisk_patched.img = 把改造后的发动机装回手机
为什么不是直接改 system?
因为现代 Android 有 AVB、动态分区、只读 system、SELinux、verified boot 等机制。直接改 /system 风险更高,也更容易破坏 OTA 和完整性。Magisk 的设计就是尽量通过启动阶段挂载、替换、注入来实现 root,而不是粗暴修改系统分区。
不同设备不一定都 patch boot.img。有些新设备要 patch init_boot.img,有些没有 boot ramdisk 的设备要 patch recovery.img。Magisk 官方安装文档就是按"设备有没有 boot ramdisk"来决定 patch 哪个镜像。
刷 ROM 時,OrangeFox 把 zip 裡的內容寫進手機分區了。例如:
boot.img 裡的內容 → 寫入 boot 分區
system 內容 → 寫入 system / super 相關分區
vendor/product 內容 → 寫入對應分區
寫入後,它不是以 /sdcard/Download/boot.img 這種普通文件存在,而是變成了底層分區內容。Magisk App 不能直接從普通文件管理器裡選到"當前 boot 分區"。所以你需要額外準備一份同版本 ROM 裡的 boot.img 文件,讓 Magisk 去 patch。
嚴格說,不能"只靠系統內一個普通 APK 立即 root"。因為普通 Android App 沒有權限修改 boot 分區,也沒有權限把自己插進開機鏈。Magisk App 在未 root 狀態下只能做一件事:幫你修補 boot.img 文件。它不能自己把 patched boot 寫進 boot 分區。

Magisk App 不只是简单给 boot.img 塞一个文件。它会根据当前设备、当前系统环境、ramdisk 状态、加密/SELinux/启动脚本结构,生成适合这台设备的 patched image。Magisk 官方安装文档明确写的是:把 boot.img / init_boot.img / recovery.img 复制到设备上,用 Magisk App 的 Select and Patch a File 修补,然后再把 patched image 拉回电脑用 fastboot 刷入。
电脑当然可以"直接写入手机分区",但前提是你已经有一个正确的 patched image。
电脑端的角色通常是:
fastboot flash boot magisk_patched.img
它只是负责把镜像写进 boot 分区,不负责理解 Android 启动逻辑,也不负责生成 Magisk 注入结构。也就是说,电脑能"刷",但不适合"生成"。

不是因為 ReVanced Manager 必須 root,而是某些情況下,普通「重新簽名安裝一個修改 APK」會改變簽名、包狀態、安裝來源,容易觸發兼容或檢測問題;root/mount 類方式理論上可以更接近原 App 的安裝形態。
/sdcard/Download/ 是 Android 裡的內部儲存下載資料夾路徑 。你在手機文件管理器裡看到的 emulated、0,其實和它是同一個地方。
Android 裡常見有幾個等價路徑:
/sdcard/Download/
等價於:
/storage/emulated/0/Download/
也常顯示成:
Internal storage > Download
內部儲存空間 > Download
其中:
/storage/emulated/0/
的意思是「目前主使用者 user 0 的模擬內部儲存」。emulated 不是外接 SD 卡,而是 Android 把內部儲存用一個兼容舊 Android App 的方式呈現出來。
Xposed 模块不是普通 App。它的工作方式是:当某个 App 启动时,LSPosed 可以把模块代码"注入"到那个 App 的进程里。你看到很多 App,是因为 LSPosed 在问你:
这个模块要注入到哪些 App 里?
不是让你随便全选。
正确理解是:
模块 = 插件
目标 App = 被插件影响的对象
Scope / 作用域 = 允许模块在哪些 App 里生效
举例:
如果模块是 Spotify 专用模块,作用域就只选:
Spotify
不要选系统框架、设置、浏览器、文件管理器、全部 App。
Windows 遊戲 DLL 注入通常是:
目標進程已經啟動
→ 用遠程執行緒 / LoadLibrary / 手動映射等方式
→ 把 DLL 塞進目標進程
→ 改函數入口、改記憶體、攔截 API
LSPosed / Xposed 更像是:
Android App 啟動前
→ Zygote 孵化 App 進程
→ LSPosed 在 Zygote/ART 層提前掛進去
→ 當目標 App 啟動時,模組代碼被載入到該 App 進程
→ 在 Java/ART 方法層做 Hook
Android App 大多不是每次從零啟動一個乾淨進程,而是由 Zygote 預載系統類後 fork 出新 App 進程。LSPosed 利用 Magisk Zygisk 進入這個啟動鏈,提前在 Zygote/ART 層建立 Hook 能力。所以它不是等 App 完全跑起來後再硬塞一個 DLL,而是在 App 進程生成時就讓模組進場。
比較精確的對應是:
Windows DLL 注入:
進程級 native 注入,常改 native API / 記憶體 / 函數指針
Xposed / LSPosed:
Zygote/ART 層注入,常 Hook Java/Kotlin 方法、Android framework API、App 類方法
例如某個 App 裡有一個 Java 方法:
Java
boolean isFeatureEnabled()
Xposed 模組可以在這個方法被調用前後插入邏輯,甚至改返回值。這類操作不一定要改 APK 文件本身,因為它是在運行時改行為。
所以它和 ReVanced Manager 的差異是:
ReVanced Manager:
靜態 patch。先改 APK,再安裝改過的 App。
LSPosed:
動態 Hook。App 原包可以不改,啟動時把模組注入進去改行為。
再用引擎/插件的角度說:
APK patch = 改資產包/改源文件後重新打包
Xposed hook = 運行時攔截函數調用,像在系統層加插件
从原理上讲:LSPosed 把风险从"APK 被改"转移到了"运行环境被注入";反作弊也会相应从文件校验转向进程、Zygote、ART、root 和行为检测。
Reuters 5 月 20 日報導,歐洲一個準備推出歐元掛鉤穩定幣的銀行聯盟新增 25 家銀行 ,總數達 37 家金融機構、覆蓋 15 國 。加入者包括 ABN Amro、Sabadell、Rabobank、Bankinter、Bank of Ireland、Handelsbanken、Nordea 等。這個項目由阿姆斯特丹公司 Qivalis 運作,定位是建立由歐洲機構治理的數位支付與資產代幣化基礎設施,對抗美元穩定幣與美國/非歐洲加密支付公司主導地位。Reuters
這是近期最有制度意義的一條:加密市場不只是幣價波動,傳統銀行正在把穩定幣當成支付、清算、代幣化資產基礎設施來布局。