2023年12月6日发(作者:曹丽佳)
本教程内容基本转载 xda论坛"forest1971 "大神的,而第一个发现这个方法的是xda另一位大神"Drnull",这里谨向出现此问题的朋友做一些操作演示,刷机有风险,请谨慎对待。
根据longerhair兄弟的说法,我的应该是半砖,在刷了几个其它内核和rom之后,都卡在FACTORY过不去,我直接跳到原贴子的
第三步(依旧卡在失败的砖家看过来)
1,建立adb 操作环境,在电脑上操作adb. 首先要安装adb的驱动(方法:安装Kies并更新), 然后下载adb
本帖隐藏的内容
(3.26 MB, 下载次数: 11)
到C盘根目录(解压后路径是C:adbtools).
2,下载
本帖隐藏的内容
4pda_ (6.06 MB, 下载次数: 10)
内核, 这个内核带有分区工具(这个基本用不上)和CWM(后面要用到),
用odin刷进去
3. 用USB线将手机连接至电脑. 并且重启手机进入recovery.
4. 在WINDOWS操作系统里面的CMD里面运行CD 命令进入C:adbtools (ms-dos小白可参照我下面截图的命令,win7的系统要先运行 cd/才能到c根目录,) 然后接着运行如下命令.
adb devices
如果正确的话, 在cmd里面, list of devices attached 下面应该一串数字或者字母(如果你的手机是进入recovery,后面会是recovery,而非device).
如果没有那串数字或者字母,说明手机还没连上adb, 可以在recovery-mount usb storage 选 mount storage, 连上了电脑应该会有声音, 然后重新输入"adb devices"(手机已经连上adb的不用管)
接着运行
adb shell
你会看到生成"~ #", 如果生成的是" $"可能你没有root
接着运行
(~ #) umount /cache (输入代码时,直接用鼠标copy "umount
/cache"进去就行了)
我在运行这一步时,出现sbin/sh:~: not found 错误结果, 解决方法是进入recovery里面 amounts and storage-unmount cache(选这个)
接着运行
(~ #) parted /dev/block/mmcblk0
运行结果
parted /dev/block/mmcblk0
GNU Parted 1.8.8.1.179-aef3
Using /dev/block/mmcblk0
Welcome to GNU Parted! Type 'help' to view a list of commands. (parted)
然后再运行
(parted) print
运行结果
Model: MMC VYL00M (sd/mmc)
Disk /dev/block/mmcblk0: 15.8GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 4194kB 25.2MB 21.0MB ext4 EFS
2 25.2MB 26.5MB 1311kB SBL1
3 27.3MB 28.6MB 1311kB SBL2
4 29.4MB 37.7MB 8389kB PARAM
5 37.7MB 46.1MB 8389kB KERNEL
6 46.1MB 54.5MB 8389kB RECOVERY
7 54.5MB 264MB 210MB ext4 CACHE
8 264MB 281MB 16.8MB MODEM
9 281MB 1174MB 893MB ext4 FACTORYFS
10 1174MB 3322MB 2147MB ext4
DATAFS
11 3322MB 15.2GB 11.9GB fat32 UMS
12 15.2GB 15.8GB 537MB ext4 HIDDEN
5, 下面是重点,假设分区有损坏,我们要把它们去掉,然后重新再分.
(1) 去掉分区
运行代码
(parted) rm 9
(parted) rm 10
(parted) rm 11
在执行(parted) rm 11 命令时,出现 "partition
/dev/block/mmcblk0p11 is being used, you must unmount it
before you modify it with parted"错误, 我重新再刷一次4pda_kernel 内核, 再从头(abd devices)运行代码,这一次全部顺利(连unmount cache也行了, 除了找不到9,10分区外,因为上面已经移除了). 没有错误的就不用管了.这只是我个人操作出现的问题.
另外还有个更简单的方法:进入recovery里面 amounts and
storage-unmount system(选这个) , 试试,如果不行继续选
unmount cache 再试试出错前输入的代码. (2)下面我们来生成新的分区
运行代码(生成9区)
(parted) mkpartfs primary ext2 3322 4215
(parted) name 9 FACTORYFS
接着运行代码(把9区由ext2格式转为原来的ext4)
(parted) quit
~ # tune2fs -j /dev/block/mmcblk0p9
~ # e2fsck -fDp /dev/block/mmcblk0p9
~ # tune2fs -O extents,uninit_bg,dir_index
/dev/block/mmcblk0p9
~ # e2fsck -fDp /dev/block/mmcblk0p9
上面四条代码,一条条来运行,遇到警告不理他丫的,直接 Y+回车键
在把分区转为ext4格式如果遇到:
1. ext2fs_check_if_mount: Can't check if filesystem is mounted due to missing mtab
2. file while determining whether /dev/block/mmcblk0p9 is mounted.
复制代码
试试
1. ~ # mount /dev/block/mmcblk0p9 /system
复制代码
后再运行转格式的代码.如果还是不行的话,进入到CWM 选"mount
and storage" - "mount /system" 然后回到电脑cmd 重新运行转格式代码 (这个方法是从xda偷来的,注意不同区,后面数字要改, 例如7区后面改为mmcblk0p7)
运行"e2fsck -fDp /dev/block/mmcblk0p9"如果遇到错误如"unexpected inconsistency", 要你"run fsck manually" 那就去掉"p"变成"e2fsck -fD /dev/block/mmcblk0p9",再运行.
接着运行代码(生成10区)
~ # parted /dev/block/mmcblk0 (parted) mkpartfs primary ext2 4215 6362
(parted) name 10 DATAFS
接着运行代码(把10区由ext2格式转为原来的ext4)
(parted) quit
~ # tune2fs -j /dev/block/mmcblk0p10
~ # e2fsck -fDp /dev/block/mmcblk0p10
~ # tune2fs -O extents,uninit_bg,dir_index
/dev/block/mmcblk0p10
~ # e2fsck -fDp /dev/block/mmcblk0p10
接着运行代码(生成11区,这个不需要转, fat32没有问题)
~ # parted /dev/block/mmcblk0
(parted) mkpartfs primary fat32 6362 15200
(parted) name 11 UMS
如果出现 "end? "在后面,
[code](parted) mkpart 6362MB 15.2G
mkpart 6362MB 15.2G
mkpart 6362MB 15.2G
End?[code] 可能就是你输入的是早期方法的代码,"(parted) mkpart 6362MB
15.2G" 改为现在的"(parted) mkpartfs primary fat32 6362 15200"应该没有问题,如果还有问题,把15200改为15564
(3)
运行代码
(parted) rm 7
(parted) mkpartfs primary ext2 54.5 264
(parted) name 7 CACHE
(parted) quit
~ # tune2fs -j /dev/block/mmcblk0p7
~ # e2fsck -fDp /dev/block/mmcblk0p7
~ # tune2fs -O extents,uninit_bg,dir_index
/dev/block/mmcblk0p7
~ # e2fsck -fDp /dev/block/mmcblk0p7
上面分别是删除7区,再重新建立,再转换为ext4格式,跟前面几区一样.
如果建区不成功,可能是因为坏区在这里,你可以调整这个区的大小, 54.5(起始) 264(结束), 在起始和结束之间选任意数字, 使之不小于128.(即128m,此区为cache 缓存)
上面都顺利的话,
运行代码
reboot
重启手机.
之后再连接手机, 连上adb, 再依次运行代码 adb devices, adb shell,
umount /cache, parted /dev/block/mmcblk0,(parted) print
上面只是查看一下是否分区和转化格式对了没有.
到此转换成功...下面刷机..............
注意: longerhair兄弟提到用odin刷机,但是xda 的大神认为应该用卡刷,我也看到有人用odin刷不行,用卡刷成功
2023年12月6日发(作者:曹丽佳)
本教程内容基本转载 xda论坛"forest1971 "大神的,而第一个发现这个方法的是xda另一位大神"Drnull",这里谨向出现此问题的朋友做一些操作演示,刷机有风险,请谨慎对待。
根据longerhair兄弟的说法,我的应该是半砖,在刷了几个其它内核和rom之后,都卡在FACTORY过不去,我直接跳到原贴子的
第三步(依旧卡在失败的砖家看过来)
1,建立adb 操作环境,在电脑上操作adb. 首先要安装adb的驱动(方法:安装Kies并更新), 然后下载adb
本帖隐藏的内容
(3.26 MB, 下载次数: 11)
到C盘根目录(解压后路径是C:adbtools).
2,下载
本帖隐藏的内容
4pda_ (6.06 MB, 下载次数: 10)
内核, 这个内核带有分区工具(这个基本用不上)和CWM(后面要用到),
用odin刷进去
3. 用USB线将手机连接至电脑. 并且重启手机进入recovery.
4. 在WINDOWS操作系统里面的CMD里面运行CD 命令进入C:adbtools (ms-dos小白可参照我下面截图的命令,win7的系统要先运行 cd/才能到c根目录,) 然后接着运行如下命令.
adb devices
如果正确的话, 在cmd里面, list of devices attached 下面应该一串数字或者字母(如果你的手机是进入recovery,后面会是recovery,而非device).
如果没有那串数字或者字母,说明手机还没连上adb, 可以在recovery-mount usb storage 选 mount storage, 连上了电脑应该会有声音, 然后重新输入"adb devices"(手机已经连上adb的不用管)
接着运行
adb shell
你会看到生成"~ #", 如果生成的是" $"可能你没有root
接着运行
(~ #) umount /cache (输入代码时,直接用鼠标copy "umount
/cache"进去就行了)
我在运行这一步时,出现sbin/sh:~: not found 错误结果, 解决方法是进入recovery里面 amounts and storage-unmount cache(选这个)
接着运行
(~ #) parted /dev/block/mmcblk0
运行结果
parted /dev/block/mmcblk0
GNU Parted 1.8.8.1.179-aef3
Using /dev/block/mmcblk0
Welcome to GNU Parted! Type 'help' to view a list of commands. (parted)
然后再运行
(parted) print
运行结果
Model: MMC VYL00M (sd/mmc)
Disk /dev/block/mmcblk0: 15.8GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 4194kB 25.2MB 21.0MB ext4 EFS
2 25.2MB 26.5MB 1311kB SBL1
3 27.3MB 28.6MB 1311kB SBL2
4 29.4MB 37.7MB 8389kB PARAM
5 37.7MB 46.1MB 8389kB KERNEL
6 46.1MB 54.5MB 8389kB RECOVERY
7 54.5MB 264MB 210MB ext4 CACHE
8 264MB 281MB 16.8MB MODEM
9 281MB 1174MB 893MB ext4 FACTORYFS
10 1174MB 3322MB 2147MB ext4
DATAFS
11 3322MB 15.2GB 11.9GB fat32 UMS
12 15.2GB 15.8GB 537MB ext4 HIDDEN
5, 下面是重点,假设分区有损坏,我们要把它们去掉,然后重新再分.
(1) 去掉分区
运行代码
(parted) rm 9
(parted) rm 10
(parted) rm 11
在执行(parted) rm 11 命令时,出现 "partition
/dev/block/mmcblk0p11 is being used, you must unmount it
before you modify it with parted"错误, 我重新再刷一次4pda_kernel 内核, 再从头(abd devices)运行代码,这一次全部顺利(连unmount cache也行了, 除了找不到9,10分区外,因为上面已经移除了). 没有错误的就不用管了.这只是我个人操作出现的问题.
另外还有个更简单的方法:进入recovery里面 amounts and
storage-unmount system(选这个) , 试试,如果不行继续选
unmount cache 再试试出错前输入的代码. (2)下面我们来生成新的分区
运行代码(生成9区)
(parted) mkpartfs primary ext2 3322 4215
(parted) name 9 FACTORYFS
接着运行代码(把9区由ext2格式转为原来的ext4)
(parted) quit
~ # tune2fs -j /dev/block/mmcblk0p9
~ # e2fsck -fDp /dev/block/mmcblk0p9
~ # tune2fs -O extents,uninit_bg,dir_index
/dev/block/mmcblk0p9
~ # e2fsck -fDp /dev/block/mmcblk0p9
上面四条代码,一条条来运行,遇到警告不理他丫的,直接 Y+回车键
在把分区转为ext4格式如果遇到:
1. ext2fs_check_if_mount: Can't check if filesystem is mounted due to missing mtab
2. file while determining whether /dev/block/mmcblk0p9 is mounted.
复制代码
试试
1. ~ # mount /dev/block/mmcblk0p9 /system
复制代码
后再运行转格式的代码.如果还是不行的话,进入到CWM 选"mount
and storage" - "mount /system" 然后回到电脑cmd 重新运行转格式代码 (这个方法是从xda偷来的,注意不同区,后面数字要改, 例如7区后面改为mmcblk0p7)
运行"e2fsck -fDp /dev/block/mmcblk0p9"如果遇到错误如"unexpected inconsistency", 要你"run fsck manually" 那就去掉"p"变成"e2fsck -fD /dev/block/mmcblk0p9",再运行.
接着运行代码(生成10区)
~ # parted /dev/block/mmcblk0 (parted) mkpartfs primary ext2 4215 6362
(parted) name 10 DATAFS
接着运行代码(把10区由ext2格式转为原来的ext4)
(parted) quit
~ # tune2fs -j /dev/block/mmcblk0p10
~ # e2fsck -fDp /dev/block/mmcblk0p10
~ # tune2fs -O extents,uninit_bg,dir_index
/dev/block/mmcblk0p10
~ # e2fsck -fDp /dev/block/mmcblk0p10
接着运行代码(生成11区,这个不需要转, fat32没有问题)
~ # parted /dev/block/mmcblk0
(parted) mkpartfs primary fat32 6362 15200
(parted) name 11 UMS
如果出现 "end? "在后面,
[code](parted) mkpart 6362MB 15.2G
mkpart 6362MB 15.2G
mkpart 6362MB 15.2G
End?[code] 可能就是你输入的是早期方法的代码,"(parted) mkpart 6362MB
15.2G" 改为现在的"(parted) mkpartfs primary fat32 6362 15200"应该没有问题,如果还有问题,把15200改为15564
(3)
运行代码
(parted) rm 7
(parted) mkpartfs primary ext2 54.5 264
(parted) name 7 CACHE
(parted) quit
~ # tune2fs -j /dev/block/mmcblk0p7
~ # e2fsck -fDp /dev/block/mmcblk0p7
~ # tune2fs -O extents,uninit_bg,dir_index
/dev/block/mmcblk0p7
~ # e2fsck -fDp /dev/block/mmcblk0p7
上面分别是删除7区,再重新建立,再转换为ext4格式,跟前面几区一样.
如果建区不成功,可能是因为坏区在这里,你可以调整这个区的大小, 54.5(起始) 264(结束), 在起始和结束之间选任意数字, 使之不小于128.(即128m,此区为cache 缓存)
上面都顺利的话,
运行代码
reboot
重启手机.
之后再连接手机, 连上adb, 再依次运行代码 adb devices, adb shell,
umount /cache, parted /dev/block/mmcblk0,(parted) print
上面只是查看一下是否分区和转化格式对了没有.
到此转换成功...下面刷机..............
注意: longerhair兄弟提到用odin刷机,但是xda 的大神认为应该用卡刷,我也看到有人用odin刷不行,用卡刷成功