前置きと注意
P30にGSIなカスタムROMをflashしようとしたところ
system領域が小さい!と怒られて大敗北しました。
今回はsystem領域の拡張に成功したのでメモ帳代わりにまとめることにしました。
⚠注意
この作業に取り掛かる前に必ずデータのバックアップを取ってください。
また、ここに書いてることを真似する場合は自己責任でお願いします。
この記事の内容を実践して生じた損害等の一切の責任を負いかねますので、ご了承ください。
あなたの大切なスマホが文鎮になっても私は責任を取れません。
また、この方法で拡張した場合はeRecoveryを使って純正ROMに戻す場合はパーティションを元に戻さないとエラーを吐くので注意してください。
前提条件
- BootloaderがunlockされているHuawei P30(自分はDC-Phoneix&HCUの時限ライセンスを購入して解除しました。 )
- fastbootコマンドが使用できる環境
- USB Type C to USB A 変換アダプタ
- USBマウス
P30はEMUI9.1にしておいてください。(EMUI10以降はfastbootコマンドが使えない&強制的にBootloaderにロックがかけられるため。)
eRecoveryを使用すると強制的にEMUI10にされますが、HCUでアンロックした場合は、HisuiteでEMUI9.1に戻すとbootloaderがアンロックされた状態に戻るはずなので慌てないでください。
(自分の場合はちゃんと戻りました)
準備
- Mate20 XのTWRP
- P30のRecovery_ramdisk
- parted_gdisk_fdisk_mkfs-ext4-aarch64-zip
- flashするROM(今回はDotOSを選択しました)
- P30(
当たり前ですね)
TWRPをflashする
Mate20 XのTWRPイメージがあるディレクトリでターミナルを開いてください。
開いたら
$ fastboot flash recovery_ramdisk twrp-3.2.1-0-everest-unofficial-v3.imgと入力してTWRPをflashしましょう。
下準備
再起動してTWRPを起動しましょう。(電源+Volume Up)
タッチ操作は出来ないのでUSBマウスを接続して操作します。
作業が長引くかもしれないのでスリープを無効にして画面の明るさを最低にしましょう。
マウスの接続を解除してPCに接続してください。
接続したら一度
$ adb devicesと入力してちゃんと接続されているかを確認しましょう。
接続が確認出来たらpartedとgdiskをP30にコピーしましょう。
parted_gdisk_fdisk_mkfs.ext4-AARCH64.zipを展開してターミナルで開きましょう
$ adb push parted /$ adb push gdisk /コピーが終わったら端末のシェルを起動します。
$ adb shellシェルを起動したらpartedとgdiskがコピーされているかを確認してください。
~ # lsacc init patch_hw splash2acct init.rc plat_file_contexts storage~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~file_contexts.bin parted sec_storagegdisk patch sepolicypartedとgdiskがあることを確認したら実行権限を付与しましょう。
~ # chmod +x parted~ # chmod +x gdisk拡張
ここまで来たらあと一息!
パーティションを操作しましょう。
partedでsddを開きます。
/parted /dev/block/sddGNU Parted 3.2Using /dev/block/sddWelcome to GNU Parted! Type 'help' to view a list of commands.まずはパーティションテーブルを確認しましょう。
(parted) unit MiB(parted) pError: The backup GPT table is corrupt, but the primary appears OK, so that willbe used.OK/Cancel? okModel: HISI SS6100GBCV100MBD (scsi)Disk /dev/block/sdd: 122000MiBSector size (logical/physical): 4096B/4096BPartition Table: gptDisk Flags:
Number Start End Size File system Name Flags~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~62 2928MiB 3016MiB 88.0MiB cust_a msftdata63 3016MiB 5328MiB 2312MiB ext4 system_a msftdata64 5328MiB 7480MiB 2152MiB product_a msftdata65 7480MiB 8056MiB 576MiB version_a msftdata66 8056MiB 9200MiB 1144MiB preload_a msftdata67 9200MiB 122000MiB 112800MiB ext4 userdata msftdata確認ができたら適当なテキストファイルにコピペしておきましょう。
今回はproduct_aとsystem_aを削除して新しくsystem_aを作成します。
この記事の場合は63,64ですね。
注意
ここで間違ったパーティションを削除してしまうと再起不可になってしまう可能性があるので必ず手作業でやるようにしましょう。
コピペはしないようにね。
(parted) rmPartition number? 63(parted) rmPartition number? 64削除が終わったらgdiskに移動します。
一度partedを閉じてから
~ # /gdisk /dev/block/sddGPT fdisk (gdisk) version 1.0.3
Partition table scan: MBR: protective BSD: not present APM: not present GPT: present
Found valid GPT with protective MBR; using GPT.
Command (? for help):ここからパーティションを追加します。
この記事の場合は63ですね。
Command (? for help): nPartition number (63-128, default 63): 63First sector (34-1914879, default = 772096) or {+-}size{KMGTP}:Last sector (772096-1914879, default = 1914879) or {+-}size{KMGTP}: +4464MiBCurrent type is 'Linux filesystem'Hex code or GUID (L to show codes, Enter = 8300): 0700Changed type of partition to 'Microsoft basic data'
Command (? for help):作成したパーティションの名前を変更します。
Command (? for help): cPartition number (1-67): 63Enter name: system_a作業が終わったら書き込みをする前に一度変更後のパーティションテーブルを確認しましょう。
Command (? for help): pDisk /dev/block/sdd: 31232000 sectors, 119.1 GiBSector size (logical/physical): 4096/4096 bytesDisk identifier (GUID): F9F21FFF-A8D4-5F0E-9746-594869AEC34EPartition table holds up to 128 entriesMain partition table begins at sector 2 and ends at sector 5First usable sector is 34, last usable sector is 31231999Partitions will be aligned on 128-sector boundariesTotal free space is 94 sectors (376.0 KiB)
Number Start (sector) End (sector) Size Code Name~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 62 749568 772095 88.0 MiB 0700 cust_a 63 772096 1914879 4.4 GiB 0700 system_a 65 1914880 2062335 576.0 MiB 0700 version_a 66 2062336 2355199 1.1 GiB 0700 preload_a 67 2355200 31231999 110.2 GiB 0700 userdata確認して大丈夫だったらパーティション情報の書き込みをしましょう。
Command (? for help): w
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTINGPARTITIONS!!
Do you want to proceed? (Y/N): YOK; writing new GUID partition table (GPT) to /dev/block/sdd.Warning: The kernel is still using the old partition table.The new table will be used at the next reboot or after yourun partprobe(8) or kpartx(8)The operation has completed successfully.書き込みが終わったらgdiskを閉じてpartedを開いてください。
~ # /parted /dev/block/sddGNU Parted 3.2Using /dev/block/sddWelcome to GNU Parted! Type 'help' to view a list of commands.(parted)Flagの設定
(parted) set 63Flag to Invert? msftdataNew state? on/[off]? onext4にフォーマット
~ # make_ext4fs /dev/block/sdd63Creating filesystem with parameters: Size: 3472883712 Block size: 4096 Blocks per group: 32768 Inodes per group: 8160 Inode size: 256 Journal blocks: 13248 Label: Blocks: 847872 Block groups: 26 Reserved block group size: 207Created filesystem with 11/212160 inodes and 28026/847872 blocks変更がちゃんとできているかの確認
~ # /parted /dev/block/sddGNU Parted 3.2Using /dev/block/sddWelcome to GNU Parted! Type 'help' to view a list of commands.(parted) pModel: HISI SS6100GBCV100MBD (scsi)Disk /dev/block/sdd: 128GBSector size (logical/physical): 4096B/4096BPartition Table: gptDisk Flags:
Number Start End Size File system Name Flags~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~62 3070MB 3163MB 92.3MB cust_a msftdata63 3163MB 7843MB 4681MB ext4 system_a msftdata65 7843MB 8447MB 604MB version_a msftdata66 8447MB 9647MB 1200MB preload_a msftdata67 9647MB 128GB 118GB userdata msftdataこれで拡張作業はおしまい。
ROMをflashしよう
これでようやく好きなROMが焼けるはず…。
fastboot --disable-verity --disable-verification flash system dotOS-R-v5.2-arm64-ab-GAPPS-OFFICIAL.imgSending sparse 'system' 1/8 (458752 KB) OKAY [ 3.193s]Writing 'system' OKAY [ 1.051s]Sending sparse 'system' 2/8 (458752 KB) OKAY [ 9.784s]Writing 'system' OKAY [ 1.050s]Sending sparse 'system' 3/8 (458752 KB) OKAY [ 9.894s]Writing 'system' OKAY [ 1.051s]Sending sparse 'system' 4/8 (458752 KB) OKAY [ 9.541s]Writing 'system' OKAY [ 1.789s]Sending sparse 'system' 5/8 (458752 KB) OKAY [ 9.920s]Writing 'system' OKAY [ 4.190s]Sending sparse 'system' 6/8 (458752 KB) OKAY [ 9.487s]Writing 'system' OKAY [ 4.602s]Sending sparse 'system' 7/8 (458752 KB) OKAY [ 9.500s]Writing 'system' OKAY [ 1.034s]Sending sparse 'system' 8/8 (233220 KB) OKAY [ 4.879s]Writing 'system' OKAY [ 0.807s]Finished. Total time: 81.857sわーい。 この後初期化するので一度stock recoveryに戻してください。
fastboot flash recovery_ramdisk recovery_ramdiS.imgSending 'recovery_ramdisk' (32768 KB) OKAY [ 0.232s]Writing 'recovery_ramdisk' OKAY [ 0.077s]Finished. Total time: 0.341sリカバリーを起動してファクトリーリセットをしたらいよいよ起動!
いよいよ起動
まぁ普通に起動するはずです。
後はmagiskを入れるなりなんなりで自由にやっちゃってください!
USB接続してもWindowsが認識できない不具合(?)はこちらでも残ってました
参考にした記事
Some information may be outdated