Key Concepts:

ROM: Factory Images

Read-only memory (ROM) is a type of non-volatile memory used in computers and other electronic devices. Data stored in ROM cannot be electronically modified after the manufacture of the memory device. Read-only memory is useful for storing software that is rarely changed during the life of the system, also known as firmware. ROM Images: The contents of ROM chips can be extracted with special hardware devices and relevant controlling software. This practice is common for, as a main example, reading the contents of older video game console cartridges. Another example is making backups of firmware/OS ROMs from older computers or other devices - for archival purposes, as in many cases, the original chips are PROMs and thus at risk of exceeding their usable data lifetime.

The resultant memory dump files are known as ROM images or abbreviated ROMs, and can be used to produce duplicate ROMs - for example to produce new cartridges or as digital files for playing in console emulators. The term ROM image originated when most console games were distributed on cartridges containing ROM chips, but achieved such widespread usage that it is still applied to images of newer games distributed on CD-ROMs or other optical media.

ROM images of commercial games, firmware, etc. usually contain copyrighted software. The unauthorized copying and distribution of copyrighted software is a violation of copyright laws in many jurisdictions, although duplication for backup purposes may be considered fair use depending on location. In any case, there is a thriving community engaged in the distribution and trading of such software and abandonware for preservation/sharing purposes.

firmeware vs rom:

Firmware also called as BIOS (Basic Input Output System) is usually small software package that is permanently installed/written (cannot not be uninstalled normally) on the memory chip that is “Read Only Memory” which mean the hard ware of the system is not allowed to make changes to it. How ever it can be be updated by specific procedure and if done wrongly it can make a machine permanently unusable. This BIOS/Firmware helps the hard ware to communicate with each other and assign their roles. It let the OS (operating system i.e. Windows etc) to be installed to do specific tasks and then other applications to do further complex tasks.

OTA: Over the air, 分为incremental or full ota What is the difference between Factory Images and Full OTA Images on the Android download site?

Factory images are bootloader compatible images, that is to say, they can be flashed using fastboot or alternative low-level tools or environment. Full OTA images are over-the-air updates that are to be flashed via recovery environment. OTA updates are usually either incremental or full. Incremental updates require the user to be running a specific Android build (not just Android version) as they increment in the existing build only. On the other hand, full OTA updates don't require a specific existing build to continue. They are handy when a user hasn't updated their system for a long time and wants to skip successive incremental updates.

rom又分为官方rom/stock firmware和custom rom

Do you mean by installing stock Android? That's where XDA Developers come in, if any devs actually created custom ROMs for Mate 7.

我的旧手机华为mate7想改造成为一台黑客基站,需要升级android版本,但是要首先root一下,首先我还是清理了下手机, 卸载了几乎除了系统安装的所有软件,手动删除了很多我认为是垃圾文件夹,估计是不慎删多了,google play打开出错, 我直接reset工厂模式,然后下面是root的过程


Rooting Huawei Ascend Mate 7 means you’re now the god of your Huawei device. You can do everything. you can Increase RAM of Huawei Ascend Mate 7 Device, Play HD Games, Increase Internal Memory, Delete Bloatware Android Apps, but you need to be careful about what you install because some apps can use root permission to damage or brick your Huawei Ascend Mate 7 device.


Root Explorer, ES File Explorer, Lucky Patcher, Dumpster, Xposed Framework, Titanium Backup, apps2rom, Bloatfreezer, Link2SD, Android Wi-Fi Tether, Wireless Tether, ShootMe, Dropcap2, Greenify, Root Explorer, ClockworkMod Recovery, AdFree, Adaway, Droid Wall, Orbot, Cache Mate, Droid VNC Server, LBE Privacy Guard, Button Savior, gravitybox, xhangouts, xwhatsapp, Xprivacy, SetCPU, Overclock Widget, ROEHSOFT RAM-EXPANDER, Memory Swapper Free, ClockSync, AdBlock Plus, SuperSU, Titanium Backup, Wakelock Detector, ROM Manager, Quick Boot, LED Hack, TRIM, StickMount, busybox, Viper4Android

Model: HUAWEI MT7-L09 CPU: Hisilicon Kirin 925 RAM: 2.0G Android Version:4.4.2 EMUI version:EMUI 3.0

root和unlock bootloader的区别

Root是”取得”系统最高权限,你可以自由存取/删除系统档案,也可以增加对于系统的控制能力. Unlock Bootloader是解除系统启动加载器(Bootloader)的原厂限制,让用户可以使用到更多的功能(如刷新内核、刷ROM、修改超频….)

# root

本来是想参照How to ROOT Huawei Ascend Mate 7 (opens new window), 结果他这种方法的prerequisite是按照twrp,然后安装twrp的前提是unlock bootloader解锁,然后解锁的申请通道被华为关闭了! 所以参考解锁的另一种办法绕过官方unlock code (opens new window),但是他这种方法的前提是root!循环回来了, 不过幸运的是,我用了kingo Root (opens new window),或者用“刷机精灵的一键root” 一键root成功!

以后不想买华为了,还是买one plus吧!


# 解锁手机 Unlock Bootloader

我们使用ADB命令行获取解锁码,首先下载ADB (opens new window) ps:本来想使用秋之盒 (opens new window),结果其内置adb启动不了

Enable USB debugging & OEM unlocking: Go to Settings ==> About Phone and tap 8 times on Build Number until it says You’re a developer. usb连接电脑 手机里面USB连接方式选择PC助手(HiSuite)


adb.exe devices
adb.exe shell
#sdcard0 内置存储 sdcard1外部存储
cd storage/sdcard1/
mkdir -p PartitionBackup
cd PartitionBackup
dd of=nvme \
dd of=oeminfo \
dd of=recovery \

strings nvme | grep WVDEVID -B 1


.\adb.exe pull /storage/sdcard1/PartitionBackup/nvme .

下载winhex (opens new window), 打开nvme,搜索WVLOCK

解锁unlock bootloader 打开“华为工具箱” 点击 解锁bootloader

正在检查设备连接。。 设备连接成功。。 正在重启你的手机,即将进入FastBoot模式。。。(为保证解锁成功,请等待10秒)。。。 正在尝试解锁。。 如果手机重启,说明你成功解锁BootLoader。。。否则,请你重新获取正确的解锁码后再试。。。

手机重启并进入 FASTBOOT&RESCUE MODE,显示机器人页面,提示:Phone Unlocked 至此解锁成功!

# 刷firmware


线刷: 连usb 用工具刷,工具可以是第三方工具,也可以是FASTBOOT ,


卡刷: 自己下载到手机 通过手机工具刷,工具可以是手机默认的recovery模式,或者是第三方recovery,比如安装TWRP 或cmw



噩梦一般的刷机经历!前面说华为关闭了unlock code通道,现在又关闭了EMUI卡刷包通道,再也不买华为了

自己手动下载了所谓的官方固件update.app和,全部失败,搞笑的是EMUI updater有时候都无法识别到我放在sdcard(sdcard1)或者internal存储(sdcard0)上面的dload, 必须要一个放zip,一个放app才识别! 而且是不会成功,一更新重启就卡住在开机logo页面

然后试了firmwarefinder for huawei,也是手动下载,也尝试了proxy下载,都一样


三键强刷方法: 1、下载固件到手机的根目录中,下载下来解压出来,复制dload文件夹到手机根目录。 2、关闭手机。 3、按住音量+和音量- 、再按开机键,手机出现LOGO时放开机键,黑屏时全部放开,就进行强刷模式,开始强刷系统。

甚至也试过 按*##2846579##*进入工程模式系统升级


最后发现了一些关键词:中转包 rec双清

才想明白,之所以刷不进去是因为官方的loader应该是做了检测,所以想强刷还是要刷入一个所谓的recovery! 理论:

手机启动的基本顺序为bootloader、recovery、系统(第三方)。我们对系统的升级、恢复出厂等都是基于recovery操作的,这个recovery,一般理解为镜像小系统,类似与ghost。是一个非常的小的文件系统,一般用来对系统进行操作。 也就是说,我们能不能刷第三方系统,能不能救砖,能不能刷回官方系统,取决于recovery是否能用,是否对系统有限制。 第三方recovery和官方recovery的最大不同在于是否对即将刷入的系统rom提供校验。一般官方的recovery会限制非官方的系统刷入,确保刷入的系统的可靠性和安全性 第三方的recovery一般可以刷更多的系统(第三方),更好的界面,更多的功能。其余2者差别不大。在个别功能上2者也有不同。rom制作者一般发布的rom只可以通过第三方recovery来刷。 当准备刷的rom对recovery的要求和本机一致时,则无需刷recovery,相反,则需要先刷recovery。

刷recovery需要首先unlock bootloader,这个前面已经做过了

一般能否卡刷第三方系统,取决于recovery能否更改。而能否刷recovery则取决于bootloader是否锁定。锁定,recovery则不可刷,反之则可刷。 注意的是:这个的可刷与否并不是指recovery文件分区是否可擦写,而是修改过的recovery是否可以顺利启动,修改过的系统是否可以顺利进入。

fastboot flash recovery XXX.img

# 安装 TWRP (Team Win Recovery Project)



Through TWRP you can flash official ROMs, Custom ROMs, kernels, add-ons, zip files Xposed Module on your Huawei Ascend Mate 7, install SuperSU or Magiskthat gives you root access to your Huawei Ascend Mate 7. the custom recovery has more additional features, restore & repair a soft-bricked Huawei Ascend Mate 7 device, Wiping, backing up, restoring partition, Make a Nandroid backup, create and restore Huawei Ascend Mate 7 backups, & Wipe data or factory reset your Huawei Ascend Mate 7 mobile. & There are a few Advanced section of TWRP like Fix permissions ADB Sideload File Manager Wrap up.没有找到mate7!

adb reboot bootloader
fastboot flash recovery twrp_3.0.2_mate7_6.0.img
fastboot reboot


adb reboot recovery

重启还是卡死在Huawei Ascend logo页面,同样三键power+volume+-也进不去,

试了twrp_2.8.7.0_mate7_6.0.img 也是一样


查了下,有人说是因为底包问题,要刷到3.1: 有人说“先三建强刷4.4.2的133底包然后本地升级357”


最终我发现了CMW - clockworkmode CWM-based Recovery V6.0.5.1 ONLY FOR Huawei MT7-TL10


E:unknown command [errno] file_getprop: failed to stat

甚至clear cache的时候都有错误 unkonw volume for path /sd-ext

我试了internal和external sdcard以及通过连接电脑,用adb工具发送:

 .\adb.exe sideload

又提示 error /tmp/ 我甚至还测试了

.\adb.exe push /tmp/



还是没有解决,最后发现了原来可以直接用play store搜索clockworkmod下载rom manager, rom manager的使用前提是手机要先root过,不然会提示 "You must root your phone for ROM Mnager to function. Superuser was not found at /system/bin/su or /system/xbin/su "

首次进去会提示设置custom recovery,然后选择INSTALL OR UPDATE RECOVERY->ClockworkMod Recovery, Confirm Phone Model,如果没有检测到,选择show all,然后手动选择,我的是Huawei Ascend, 然后点击Flash ClockworkMod Recovery,等待下载,不要离开,下载完会弹出root权限授权,点击allow, 最后提示flash successful,说明刷入CMW recovery成功! 当然你也可以手动触发上面的设置过程,点击首页的Recovery setup即可


然后我用这个cmw刷了下这个包,说是3.1其实是3.0,实际我后来又看了下应该是这个包,因为我刷的时候用了很多包, 所以混淆很正常,我是从sdcard拷贝出来的包名看到的,而且我确认了这个里面是有supersu的,因为我确实刷好之后可以直接用rom manager, 说明是有root权限,所以ycjeson那个包里面实际没有supersu,所以可以排除了, 结果我前面用了那个rom乐园的EMUI3.0-4.4的工具包刷入的cmw有很多垃圾,reset factory会预装很多垃圾软件, 结果我用了这个包神奇的将系统重置回我之前的版本

然后我觉着ycjeson这个人开发的rom包还不错,所以想继续尝试高版本,结果其说明里面明确了说:必须基于底包3.1/4,不然无法刷入,基于前面的坑,我强刷没戏, 这个思路是没错的, 不过这时候我想起,刚才不是看到了EMUI的recovery页面吗,我岂不是可以重新尝试刷官方stock firmware, 然后我就下载了这个全量包,,里面看起来挺全的,不只是有,还有 system,cust,patch,META-INF

将update.zip放入外置sdcard的dload里面,结果updater不识别,不过根据前面的姿势,知道可以解压开, 把update.app也放出来,果然updater识别了,显示一个incremental增量update.app包,一个integrate zip包, 我当然是点击刷全量zip包,重启果然成功了,哎呀赶紧多下载下这个网站的rom备份下: 注意链接,根据型号来,我的是L09,根据版本的区别:渠道版TL,移动版,电信版,联通版,这里T100应该是TL10 FullOTA-MF vs FullOTA-MF-PV: According to team MT. PV means point version and is used to move between android versions e.g. 7 to 8. MF means multi file e.g. more than one update is contained in the package.

MT7-CL00是电信版型号,可以是标配版,也可以是高配版。 MT7-TL10是高配版移动联通双4G版(公开版),一定是高配版。

mate7总共分为标配版和高配版。 标配版有电信版、移动版、联通版。 高配版有移动版、电信版、公开版。 电信版:CLOO 移动版:TL00 联通版:UL00 公开版:TL10 只有高配和标配有区别,运营商版本配置都是一样的。

根据上面的说法,我应该找我L09对应的 或者公开版 但是貌似里面都没有full ota PV版本, 而实际上我前面成功的版本是在tl00也就是移动版下找到的

思路总结 如果系统recovery卡死,通过三方recovery刷新同版本rom,然后再通过系统recovery升级底包,然后你可以开心的升级其他三方的custom rom

几点建议: 做操作之前先备份,通过命令行或者工具备份你的数据

adb backup -apk -shared -all -nosystem -f backup08262012.ab
adb restore backup08262012.ab

同样也要备份当前rom,如果你也是孤儿版,估计找到原厂firmware的几率比较低,所以备份很重要,备份别忘了存到电脑,如果你存到了sdcard又format了相当于啥都没备份 rom manager有备份功能,备份默认存在 /mnt/shell/emulated/clockworkmod/backup 普通用户无法查看操作,可以通过adb命令用superuser权限查看获取 adb shell "su -c '[your command goes here]'" .\adb.exe shell "su -c 'ls /storage/sdcard0/clockworkmod/download'" 但是有时候rom manager可能不工作 另一种方法就是直接通过adb命令backup image,然后通过fastboot或者shell命令re-install image:

-- backup/dump image(include system.img recovery.img etc)
method1 via adb shell dd:
首先要明确 Android MMC/EMMC/MTD Partition Layout[Android]MTD-MMC-EMMC-partition-layout/

1|root@hwmt7:/ # cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00020000 00001000 "block2mtd: /dev/block/mmcblk0p1"
mtd1: 00020000 00001000 "block2mtd: /dev/block/mmcblk0p2"
mtd2: 00400000 00001000 "block2mtd: /dev/block/mmcblk0p7"
mtd3: 00400000 00001000 "block2mtd: /dev/block/mmcblk0p23"
mtd4: 00400000 00001000 "block2mtd: /dev/block/mmcblk0p25"
mtd5: 03c00000 00001000 "block2mtd: /dev/block/mmcblk0p26"
mtd6: 00400000 00001000 "block2mtd: /dev/block/mmcblk0p27"
mtd7: 01800000 00001000 "block2mtd: /dev/block/mmcblk0p29"
mtd8: 00400000 00001000 "block2mtd: /dev/block/mmcblk0p6"

root@hwmt7:/ # ls -l /dev/block/platform/hi_mci.0/by-name
lrwxrwxrwx root     root              2020-06-01 20:13 3rdmodem -> /dev/block/mmcblk0p31
lrwxrwxrwx root     root              2020-06-01 20:13 3rdmodemnvm -> /dev/block/mmcblk0p32
lrwxrwxrwx root     root              2020-06-01 20:13 3rdmodemnvmbkp -> /dev/block/mmcblk0p33
lrwxrwxrwx root     root              2020-06-01 20:13 boot -> /dev/block/mmcblk0p13
lrwxrwxrwx root     root              2020-06-01 20:13 cache -> /dev/block/mmcblk0p39
lrwxrwxrwx root     root              2020-06-01 20:13 cust -> /dev/block/mmcblk0p37
lrwxrwxrwx root     root              2020-06-01 20:13 dfx -> /dev/block/mmcblk0p22
lrwxrwxrwx root     root              2020-06-01 20:13 dts -> /dev/block/mmcblk0p20
lrwxrwxrwx root     root              2020-06-01 20:13 fastboot -> /dev/block/mmcblk0p4
lrwxrwxrwx root     root              2020-06-01 20:13 fw_hifi -> /dev/block/mmcblk0p9
lrwxrwxrwx root     root              2020-06-01 20:13 fw_lpm3 -> /dev/block/mmcblk0p5
lrwxrwxrwx root     root              2020-06-01 20:13 hibench -> /dev/block/mmcblk0p8
lrwxrwxrwx root     root              2020-06-01 20:13 hisitest0 -> /dev/block/mmcblk0p35
lrwxrwxrwx root     root              2020-06-01 20:13 hisitest1 -> /dev/block/mmcblk0p36
lrwxrwxrwx root     root              2020-06-01 20:13 misc -> /dev/block/mmcblk0p11
lrwxrwxrwx root     root              2020-06-01 20:13 modem -> /dev/block/mmcblk0p26
lrwxrwxrwx root     root              2020-06-01 20:13 modem_dsp -> /dev/block/mmcblk0p27
lrwxrwxrwx root     root              2020-06-01 20:13 modem_om -> /dev/block/mmcblk0p28
lrwxrwxrwx root     root              2020-06-01 20:13 modemnvm_backup -> /dev/block/mmcblk0p23
lrwxrwxrwx root     root              2020-06-01 20:13 modemnvm_factory -> /dev/block/mmcblk0p7
lrwxrwxrwx root     root              2020-06-01 20:13 modemnvm_img -> /dev/block/mmcblk0p24
lrwxrwxrwx root     root              2020-06-01 20:13 modemnvm_system -> /dev/block/mmcblk0p25
lrwxrwxrwx root     root              2020-06-01 20:13 modemnvm_update -> /dev/block/mmcblk0p29
lrwxrwxrwx root     root              2020-06-01 20:13 nvme -> /dev/block/mmcblk0p6
lrwxrwxrwx root     root              2020-06-01 20:13 oeminfo -> /dev/block/mmcblk0p16
lrwxrwxrwx root     root              2020-06-01 20:13 recovery -> /dev/block/mmcblk0p14
lrwxrwxrwx root     root              2020-06-01 20:13 recovery2 -> /dev/block/mmcblk0p30
lrwxrwxrwx root     root              2020-06-01 20:13 recovery3 -> /dev/block/mmcblk0p15
lrwxrwxrwx root     root              2020-06-01 20:13 reserved1 -> /dev/block/mmcblk0p3
lrwxrwxrwx root     root              2020-06-01 20:13 reserved2 -> /dev/block/mmcblk0p12
lrwxrwxrwx root     root              2020-06-01 20:13 secure_storage -> /dev/block/mmcblk0p21
lrwxrwxrwx root     root              2020-06-01 20:13 sensorhub -> /dev/block/mmcblk0p17
lrwxrwxrwx root     root              2020-06-01 20:13 splash -> /dev/block/mmcblk0p18
lrwxrwxrwx root     root              2020-06-01 20:13 splash2 -> /dev/block/mmcblk0p34
lrwxrwxrwx root     root              2020-06-01 20:13 splash3 -> /dev/block/mmcblk0p19
lrwxrwxrwx root     root              2020-06-01 20:13 system -> /dev/block/mmcblk0p38
lrwxrwxrwx root     root              2020-06-01 20:13 teeos -> /dev/block/mmcblk0p10
lrwxrwxrwx root     root              2020-06-01 20:13 userdata -> /dev/block/mmcblk0p40
lrwxrwxrwx root     root              2020-06-01 20:13 vrl -> /dev/block/mmcblk0p1
lrwxrwxrwx root     root              2020-06-01 20:13 vrl_backup -> /dev/block/mmcblk0p2

cd storage/sdcard1/
mkdir -p RomBackup
cd RomBackup

dd of=boot.img if=/dev/block/platform/hi_mci.0/by-name/boot
dd of=recovery.img if=/dev/block/platform/hi_mci.0/by-name/recovery
dd of=recovery2.img if=/dev/block/platform/hi_mci.0/by-name/recovery2
dd of=recovery3.img if=/dev/block/platform/hi_mci.0/by-name/recovery3
dd of=system.img if=/dev/block/platform/hi_mci.0/by-name/system

//dd if=/dev/block/hi_mci.0 of=/mnt/external_sd/backup/metadata.img
//dd if=/dev/block/mtdblock0 of=/mnt/external_sd/backup/misc.img
//dd if=/dev/block/mtdblock1 of=/mnt/external_sd/backup/kernel.img
//dd if=/dev/block/mtdblock4 of=/mnt/external_sd/backup/backup.img
// /data/busybox-armv7l_1.21.1 ls -ltr /mnt/external_sd/backup/
more if need:
//dd if=/dev/block/mtdblock5 of=/mnt/external_sd/backup/cache.img
//dd if=/dev/block/mtdblock6 of=/mnt/external_sd/backup/userdata.img
//dd if=/dev/block/mtdblock7 of=/mnt/external_sd/backup/kpanic.img
//dd if=/dev/block/mtdblock9 of=/mnt/external_sd/backup/user.img

method2 via romdump:

-- re-install image
method1 fastboot:
If you have a fastboot-enabled bootloader
fastboot flash system /path/to/system.img

method2 adb shell dd:
adb push system.img /sdcard/
adb shell
dd if=/sdcard/system.img of=/your/system/partition

升级的时候要一个版本一个版本来,不要直接从android4升到6,先升到5,这样成功概率更高,步子太大容易扯着 如果发现你的系统recovery不好用,建议通过三方recovery刷一下当前的版本,我的意思是找个custom或者official的rom,版本跟你当前版本一致,原因是也许你当前的版本有特别的限制,所以你刷个同等版本的首先容易成功,如果成功你再测试recovery就更容易成功 手机这个玩意还是很多变量: 比如外置sdcard是否要format,我甚至看到有人三键强刷升级的时候是等系统重启到logo页面,黑掉之后才迅速插入sdcard,所以需要多试试不同的姿势; 再比如,有时候你以为是卡死,但是请耐心多等待一会,比如放20十分钟或者一个小时,也许就会不同; 时刻清楚当前的机器的状态,比如是reset factory之后还是clear cache之后,还是刷了三方recovery之后,再比如每次reset factory和升级之后,你的root权限是否还在,这些状态是你下一步的判断依据 通过细小的差异,观察系统的反应,你会找到跟机器交流的感觉

其他思路:通过fastboot直接刷 MagiskManager

# 后续

用了AsiaPacific571的包Update.APP通过updater更新到了android6 emui4,注意更新后手机的解锁状态和root状态都会变掉;



在system目录下,有一个set_immutable.list文件,这个文件设置了以下目录/文件不能被修改/删除/增加等操作: /system/build.prop /system/etc /system/fonts /system/framework /system/isp.bin /system/lib /system/ons.bin /system/usr /system/vendor /system/xbin /system/app/HwLauncher6.apk /system/app/HwLauncher6.odex /system/app/SystEMUI (opens new window).apk /system/app/SystemUI.odex /system/priv-app/SettingsProvider.apk /system/priv-app/SettingsProvider.odex /system/priv-app/Keyguard.apk /system/priv-app/Settings.apk /system/priv-app/Settings.odex /system/priv-app/Keyguard.apk





发现网上有教师用magisk来patch boot.img,试了下如下的方案,但是失败,在fastboot boot magisk_patched.img时报错“remote cmd not allowed”


前面在刷twrp的时候失败,但是此时我已经升级到了emui4 android6,所以就再尝试一次


判断方法:adb reboot bootloader可以看到手机状态
adb reboot bootloader
fastboot flash recovery twrp-v1-hi3630.img
fastboot reboot
adb reboot recovery

注意,一定要及时用twrp做备份,并且存到电脑上,我后面实验adoptable storage的时候从网上下载了一个boot.img kernel文件,由于通过twrp刷不进去,所以用fastboot flash boot boot.img,但是失败,但是估计是刷入了部分内容,手机直接变砖,幸运的是三键还可以进入到twrp,所以直接用之前的备份restore即可(注意restore重启之后需要等待挺长时间,耐心等待)

ROOT Huawei Ascend Mate 7 via Magisk

1- Copy and paste the **Magisk zip file** to the internal storage or SD card of your phone.
2- Reboot your **Huawei Ascend Mate 7** to TWRP Recovery

- Power off the **Huawei Ascend Mate 7** completely.
- Press & Hold the **Power key** and **Volume up key.**
- The phone should enter into the TWRP Recovery mode.

3- Tap on **Install** button, and select the **Magisk zip file** that you have copied.

4- Swiping **Swipe to Confirm Flash** to Confirm the installation

# 扩展内部存储

当然很多人觉着直接插入一个大容量的external sdcard不就可以了,然后可以从手机的storage设置中将默认的安装位置切换到external sdcard,但是问题是,手机的很多partition 比如/data还是用的internal storage,所以另一个思路就是:extend interal storage with sdcard ,要注意的是,在这个之前要买一个好的sdcard。



MicroSD vs. SD Card. MicroSD is a smaller variant of the SD (Secure Digital) card and is used in certain cell phones, PDAs and smaller, lighter devices. MicroSD cards can be read by regular SD card slots through an adaptor.


普通的sdcard在扩展为内部存储时,手机会告警:low speed SD card may seriously affect system performance, Class 10 or higher is recommended,所以推荐sandisk exterem pro

microSD: Has a capacity up to 2GB, and works in any microSD slot. microSDHC: Has a capacity of more than 2GB and up to 32GB, and works in hardware that supports either SDHC and SDXC. microSDXC: Has a capacity of more than 32GB and up to 2TB (although at the time of writing, 1TB is the largest available card), and is only supported in SDXC-compatible devices. microSDUC: Supports cards up to 128TB, and will require a compatible device.



**method 1 via ext4 partition and link2sd app ** 注意,partition type ext2 3 4 尽量跟系统本身一致,可以用adb shell查看系统partition type :cat /proc/mounts

method 2 via Adoptable storage:


huawei 禁用了,至少emui4我是没找到!

然后尝试rom essential,没什么效果,




shell@hwmt7:/ $ sm has-adoptable false

shell@hwmt7:/ $ sm list-volumes all private mounted null public:179:169 mounted 0CB1-0A4C emulated mounted null

shell@hwmt7:/ $ sm list-disks disk:179:168 shell@hwmt7:/ $ sm partition disk:179:168 private shell@hwmt7:/ $ sm list-volumes all emulated:179:170 unmounted null private:179:170 mounted 91aab7e7-cba6-4de1-909b-e746b0a3bcc9 private mounted null emulated mounted null shell@hwmt7:/ $ reboot

某些Android裝置設定並未提供Adoptable Storage(也許手機商認為這限制重重的功能無異脫褲子放x、且有影響效能的疑慮),但若執意啟用也可透過ADB以指令方式完成。
2.在PC(以下操作為Windows環境)透過指令adb shell進入遠端操作模式
sm list-disks 列出已安裝可支援Adoptable Storage的SD卡(預設參數adoptable可免打)
sm list-volumes [public|private|emulated|all]
  sm list-volumes all 可列出SD卡全部容體(等同磁碟分割區)
  sm list-volumes public 或 emulated 列出SD卡上的一般儲存區(FAT32或exFAT)
  sm list-volumes private 列出SD 卡上掛載為Adpotable Storage的儲存區
sm has-adoptable 可查詢系統是否啟用Adpotable Storage功能
sm get-primary-storage-uuid 可讀取SD卡UUID
sm set-force-adoptable [true|false] 若系統未開啟Adoptable Storage功能、可透過sm set-force-adoptable true強行開啟,或以sm set-force-adoptable false關閉。
sm partition DISK [public|private|mixed] [ratio] 設定SD卡Adoptable Storage空間。注意、進行此操作將完全刪除SD卡內容、務必先備份SD卡。
  sm partition DISK public 將SD卡完全格式化為一般儲存空間(FAT32或exFAT)
  sm partition DISK private 將SD卡完全格式化為Adoptable Storage(加密EXT4)
  sm partition DISK mixed [ratio] 將SD卡按比例格式化為一般儲存空間與Adoptable Storage。[ratio]為百分比指定Adoptable Storage比例、剩餘則為一般儲存區。並非所有裝置皆可支援混和模式、有可能回報儲存區損毀,此時請重新格式化SD卡避免使用mixed混和模式。
sm mount VOLUME 掛載指定容體
sm unmount VOLUME 卸載指定容體
sm format VOLUME 格式化指定容體
sm benchmark VOLUME 測試指定容體效能
sm forget [UUID|all] 退出指定UUID或全部可卸除裝置(SD卡)

新买的micro sdcard extreme pro,通过桌面分区工具AOMEI Partition Assistant Standard改成ext4后,link2sd 无法mount,总是弹出重试脚本, 刚开始怀疑是不是因为这个sdcard太新了,不兼容,然后发现这个帖子 查了下mount2sd,居然没找到,但是找到了 App2SD Pro: All in One Tool [ROOT] 这个东西用了下居然可以mount上去,但是有个问题是从settings->storage看到ext4的那个分区状态是corrupted, 刚开始没在意,继续使用,发现app并没有默认安装到扩展的ext4分区,但是看到有auto link,并且进到app info,可以手动link data lib等到sdcard, 所以就尝试了下,貌似起作用,但是还是有问题,


try ext2 ext3?


HM NOTE 1LTE - Xiaomi Redmi Note 4G (Single SIM)

Hm note 1s cu(gucci) Volume up + power => Recovery Mode Volume down + power => fastboot mode , usb connect to pc,

[ROMs] Sailfish Os For Redmi 1s

#issues: Signature Enforcement

Offical Work [TWRP] Redmi Note Prime (Gucci) TWRP English Recovery

Not work Failed install with fastboot

Can I update my hm note 1s cu(gucci) to other version??


adb shell getprop | ack name