2021年、Pixel 3をメイン機にする予定だった。
先にいくつか記事を読んだ。思ったより複雑ではなさそう。
Ref:
大まかな流れはこんな感じ。
アンロック -> Magiskでroot -> 電信モジュールを有効化。
Pixel 3のハード自体は電信に対応しているので、設定を少し弄れば動くはず。
作業は4ステップ。
- フルバックアップ
- 最新システムへ更新
- Magiskを導入
- 電信モジュールを有効化
フルバックアップ
ド素人なので、刷く前から「文鎮化したらどうしよう」と考えていた
なのでまずはフルバックアップ。
参考:How to fully backup and restore your Android device without root
adbでバックアップ/復元するのはそれなりに堅そう。
USB Debuggingを有効化adb backup -apk -shared -all -f <filepath>/backup.ab
backupの後ろの4つの引数が何を意味するのか、.ab拡張子が何なのかは当時よく分かっていなかった- 端末側に確認画面が出る。パスワードも設定できるので、できれば設定(推奨)
- ひたすら待つ
- 復元は
adb restore <filepath>/backup.ab
2021/10/07 update
adb restore <filepath>/backup.abがうまく動かず、復元に失敗した…
adb backupの標準に従わないアプリがあるらしく、バックアップ時に壊れていてもCLI側はエラーを出さないことがあるらしい。
2〜3回復元を試したが、データは戻ってこなかった。幸い今回はそこまで重要なデータではなかった。
別のバックアップ方法が必要(未定)。
最新システムへ更新
手元のPixel 3は中古で、すでにroot化されていた。データを消すときにMagiskをアンインストールしていなかったせいで検証に通らず、自動でアップデートが入らない状態になった。
ネットで手動アップデートの方法を調べる。
XDA - How to flash a monthly security update on Google Pixel without wiping data
この記事は最新のFactory Imageを落としてflash-all.shを編集し(末尾付近の-wを削除)、ユーザーデータを消さずに更新するというやり方。
ただ、なんとなく怖い。
Google公式が推奨しているのはFull OTA Imagesでの更新:
Full OTA Images for Nexus and Pixel Devices - Updating instructions
手順がかなり丁寧で、公式ガイド通りにやったら問題なく最新版に更新できた。
Magiskを導入
この端末はBootloaderアンロック済みなので、そのままMagiskを入れられる。
未アンロックの場合はGoogleの手順を参照:
Factory Images for Nexus and Pixel Devices - Flashing instructions
注意:アンロックすると全データが消える。必ず先にバックアップ。
Magisk導入は複数記事を突き合わせた。
- 玩机的必备操作 —— Pixel3 安装 Magisk
- Pixel 3 完美支持中國電信
- Magisk官方文档 - Github - Magisk - Installation
- How to Unlock the Bootloader and Root the Google Pixel 3 with Magisk
magisk.apk をインストール
- Github - Magiskから最新APKをダウンロードし、端末へインストール。
boot image をパッチ
- Google公式から端末に対応する
Factory Images(フルファームウェア)をダウンロード: https://developers.google.com/android/images - 展開すると
flash-***スクリプト類、bootloaderとradioの.img、一番大きいimage-***.zipが出てくる image-***.zipをさらに展開してboot.imgを取り出し、端末に送る(例:adb push boot.img /sdcard/Download/)- Magiskを開き、上の
InstallからSelect and Patch a Fileを選んで、送ったboot.imgを指定 - Magiskがパッチを当てて
magisk_patched_*****.imgが生成される - 生成されたイメージをPCに戻して、書き込みに使う
boot をフラッシュ
ここは記事によって微妙に手順が違っていて、少し混乱した。
bootloaderモードへ再起動:adb reboot bootloaderfastbootモードへ再起動:adb reboot fastboot(または電源+音量下などのキーコンボ)
当時はこの2つの違いがよく分からなかったので、ダメなら次のノリで試した。
fastboot flash boot magisk_patched_*****.imgでbootに書き込み、fastboot rebootで再起動- あるいは
fastboot boot magisk_patched_*****.imgで一時起動し、MagiskアプリからInstall->Direct Installで恒久化
(前者のほうが楽)
以前ちょっとバグった
- 2021/08/19 update(このメモは間違っているかも)
たぶんadb reboot fastboot+fastboot flash boot magisk_patched_*****.img
adb reboot bootloader+fastboot boot magisk_patched_*****.img
で組み合わせるべきだった気がする。
当時fastbootモードでfastboot boot magisk_patched_*****.imgを叩いてエラーになった。 - 2021/10/31 update
上の2021/08/19のメモは正確ではないかもしれない。エラーは出たが、どのコマンドだったか忘れた。
OTAアップデートの話
Pixel 3 完美支持中國電信の記事に、Magiskを残しつつOTA更新する手順が詳しく書かれていて便利だった。
要点としては「OTAのために一時的にstockへ戻す」->「再起動する前にinactive slotへMagiskを入れ直す」みたいな流れ。
原文ドキュメント:https://topjohnwu.github.io/Magisk/tutorials.html
更新:何度か試したが自分の環境ではうまくいかなかった。結局は手動で更新パッケージを焼くことが多く、この方法は安定しなかった。
電信モジュールを有効化
ここが一番簡単だった。
MagiskアプリのModulesにいろいろあるが、China Telecom Enablerは自分のPixel 3には入らなかった。
代わりにこれを使った:
Github - China Telecom Supporter
作者が導入方法を書いてくれている。
最初はGitHubのDownload as ZIPで落として、そのままMagiskから入れようとして失敗した。ZIPの中がディレクトリ1階層ぶん余計で、それを取り除いたら通った。
インストール後に再起動し、電信SIMを挿すと通話できた。完結、撒花~~~
Android 12へアップグレード
2021/10/23 update
Pixel 3の公式サポートは2021年10月までで、ちょうどAndroid 12の安定版配信と重なった。Magisk入りのPixel 3にもOTAが来た。
2日ほど悩んだが、結局この最後の晩餐に抗えず、系统升级を押した。
アップデート後、電信破解が消えていて焦った。
ただ、一通り試してみたら「Magiskで電信モジュールをアンインストールして、もう一度インストールする」と復活した。
だいたいこんな感じ:
- Android 12へアップグレード
- Magiskがパッチした
boot.imgが上書きされる - Magiskを入れ直す
- 以前入れていたMagiskモジュールは残っている(良い)
- しかし電信が死んでいる(悪い)
- いろいろ試す
- Magiskで電信モジュールをアンインストール
- 再起動
- 電信モジュールを再インストール
- もう一度再起動
- 電信が復活(良い)
adbコマンド
Magisk周りを触る中で覚えたadbコマンドを、忘れないようにメモ。
-
adb push/pull
PCと端末間でファイルをやり取りする。例:adb push boot.img /sdcard/Download/ -
adb shell
端末にシェルで入る(SSHっぽい)。ls、pwd、cdなどが使える。adb push/pull先のパス確認に使った。 -
adb install *.apk
コマンドラインからAPKをインストールする。 -
adb shell pm uninstall
adb shell pm list packagesでインストール済みパッケージ一覧
adb shell pm uninstall -k --user 0 软件包名で指定パッケージを削除この方法は、端末上から通常は削除できないプリインアプリを「削除」できるが、完全なアンインストールではなく無効化に近い。端末の容量も空かない。
Ref:bilibili专栏 - 无法解锁bootloader时,如何使用ADB工具精简日版系统 & ntt docomo软件对照表
2021/08/25 update
-
アプリをアンインストール(無効化)
adb shell pm uninstall -k --user 0 <package-name>- -k : Keep the data and cache directories around after package removal.
- —user 0: The user to disable
-
既にアンインストールしたパッケージを再インストール
adb shell pm install-existing <package-name> -
アンインストールしたパッケージ一覧を出す(bash上で実行。adb shell内ではない)
Terminal window diff <(adb shell pm list packages) <(adb shell pm list packages -u) -n | grep ^package:
Ref:
XDA - Uninstall bloatwares [No root]
XDA - few questions about root and more - Use adb shell to remove Google apps and more..
Bashスクリプト
https://forum.xda-developers.com/t/uninstall-bloatwares-no-root.4321387/
Here is a list of packages identified as bloatware / ads / junks / useless / optional. Please read comments and remove the lines where you want to keep the package. Uninstall at your own risks.
pm uninstall -k --user 0 com.google.android.apps.googleassistantpm uninstall -k --user 0 com.google.android.googlequicksearchbox
pm uninstall -k --user 0 com.google.android.apps.subscriptions.redpm uninstall -k --user 0 com.xiaomi.midrop
pm uninstall -k --user 0 com.xiaomi.miplay_client Mi Play. This is an unnecessary process that hasn't really been used for years.pm uninstall -k --user 0 cn.wps.xiaomi.abroad.lite WPS Office. Has been flagged for years for malware. This was banned in India for a reason.pm uninstall -k --user 0 com.miui.msa.global MSA. This is the main service that displays ads in Xiaomi phones. This is already removed in Xiaomi.EU.pm uninstall -k --user 0 com.xiaomi.payment Unless you live in China or India, Xiaomi's own payment service is redundant and unnecessary.pm uninstall -k --user 0 com.ebay.carrier In case bloatware from Ebay is installed.pm uninstall -k --user 0 com.android.browser Mi Browser. It's a buggy unnecessary mess. Recommend you use other browsers like Chrome.pm uninstall -k --user 0 com.mi.globalbrowser Also part of Mi Browser.pm uninstall -k --user 0 com.miui.videoplayer Mi Video player. Uninstall if you prefer to use MX Player or VLC that actually support more formats.pm uninstall -k --user 0 com.miui.micloudsync Include if you don't use Mi Cloud.pm uninstall -k --user 0 com.miui.hybrid Found to be a data mining app that unnecesarily uses your phone's resources.pm uninstall -k --user 0 com.miui.hybrid.accessory Also a data mining app. Very recommend that you get rid of this.pm uninstall -k --user 0 com.miui.player Include if you don't use Xiaomi's music app.pm uninstall -k --user 0 com.facebook.services In case Facebook bloatware was preinstalled.pm uninstall -k --user 0 com.facebook.system Also Facebook bloat.pm uninstall -k --user 0 com.facebook.appmanager Also Facebook bloat.pm uninstall -k --user 0 com.xiaomi.glgm Mi Games. Very unncessary.pm uninstall -k --user 0 com.xiaomi.mipicks Very unnecessary. Xiaomi's way to advertise their own apps.pm uninstall -k --user 0 com.xiaomi.joyose Junk and safe to remove.pm uninstall -k --user 0 com.miui.notes Include if you use other notes apps.pm uninstall -k --user 0 com.miui.cleanmaster Together with WPS Office, Cleaner Master was found to be affiliated with Cheetah Mobile, that included spyware and adware in their software.pm uninstall -k --user 0 com.miui.weather2 Include if you use other apps to get the weather like Google or Yahoo.pm uninstall -k --user 0 com.micredit.in Mi Credit. Basically useless if you live outside India.pm uninstall -k --user 0 com.mipay.wallet.in Part of Mi Credit.Pixel C タブレット
2021/10/27 update
最近Google Pixel Cタブレットを入手して遊んでいる。遭遇した問題のメモ。
adbは認識するのにfastbootがno permissionで落ちた。lspciでUSBデバイスを手で追加する方法も見かけたが、結局はsudo fastbootが一番簡単だった…TWRPでサードパーティROMを入れるときは、手順通りにSYSTEMとDATAをワイプすること。自分はそこを見落として再起動したらブートアニメで停止し、強制電源OFF ->TWRPに戻ってDATAを消そうとしても消えず、formatting data using make_ext4fsで固まった。さらにfailed to mount data、failed to mount systemも出て、両パーティションが壊れていた。
解決はこれを参照:XDA - How to fix unable to mount data internal storage 0mb in twrp permanently
TWRPでAdvanced Wipe->Repair File System->Change File SystemでいったんExt2にして、刷り直したあとExt4に戻す(両方のパーティションで同様にやる)。
その後は手順通りに焼き直して無事起動した。- 焼いた後は少しカクつくが、
使えなくはない。
ただ面倒だったのは、サードパーティROMだと純正キーボードのショートカットが効かなくなったこと。純正キーボードにはESCがなく、...+1でESC相当を出すのだが、それが潰れてしまった。Magiskのモジュールでリマップできないものか(技術力がほしい.jpg)
あとで読み返す用に、XDAのリンクをメモ。
- XDA - Google Pixel C
- XDA -
[RECOVERY][TWRP][dragon][3.5.2]-> 2021-04-07 - XDA -
[ROM][UNOFFICIAL][LineageOS][18.1][dragon]-> 2021-10-06 - XDA -
[ROM][UNOFFICIAL][Pixel Experience 11][Dragon][2021/09/26] - XDA - Hidden escape key on Pixel C Physical Keyboard! Keys for ”[ ] { } | ~” too!
2015年の端末が、2021年になっても開発者にメンテされてAndroid 11まで動き、しかも開発者がAndroid 12対応まで計画しているのはすごい。寿命が長い。
もちろん運もある。公式サポートはAndroid 6〜8で終わって、その後GoogleがChrome OS路線に振って製品ラインを投げた…
しかもこのタブレットはQualcommではなくNvidiaのTegra X1で、よく分からない制約も多く、開発者も撤退しかけた。
ところがNvidiaが同じチップを積んだNvidia Shield TVを出し、そこからカーネルを移植することで延命できた(たぶんそういう流れ。詳しくはXDAのFuture of our Pixel C - Goal reached)。
オープンソースに感謝。
開発者に感謝。
Pixel 5
2022/10/11 update
Pixel 5も入手。
良いニュース:最新Android 13が使える。
悪いニュース:電信SIMが死んだ…
数時間粘ったが、結局は完全に解決できなかった。成果としては「VoLTEは出る」「発信はできる」「着信できない」(通信は未検証)くらい。
参考になったリンクをメモ。
-
七味茶盏 - Pixel 5 全网通及开启 5G 与 VoLTE
これが一番助かった。電信モジュールの情報更新が頻繁。
どうやらPixel 5向けの無料電信モジュールはもう無く、課金の破解のみ(連絡先は記事内)。 -
Youtube - Magisk 24.1 Stable | Android SafetyNet ByPass & CTS Profile False Fix in 2022 | Zygisk & DenyList
Magiskを隠してSafetyNet検証を通す話。 -
Github - Fox’s Magisk Module Manager
新版MagiskにはオンラインのModuleリポジトリが無いので、その代替。 -
Github - Universal SafetyNet Fix
SafetyNet修正用のMagiskモジュール。 -
Github - Pixel-Redbull-Carrier-Patch
Pixel 4a/Pixel 5向けの電信モジュール(Android 11のみ)。
Android 13のPixel 5に2つ目のパッケージを入れても「発信はできるが着信できない」が限界だった(それでもこれが一番マシ…)。 -
Github - VoEnabler
VoLTE/VoWiFi/RCSを有効化するモジュール。ただ自分のケースではあまり効かなかった… -
少数派 - 国内也能用 5G:Pixel 5 到手后可以做的 6 件事
2020年の記事。当時は無料モジュールがあったが、今は有料になっている。
置きトップコメントに、QPSTで5Gを有効化する迂回策も書かれている。 -
Github - GoogleDialerMod
七味茶盏のブログでRiruからZygiskへ移行する話の中で見かけた。
通話録音ができるらしい。便利そうなのでメモ。
電信は結局解決できず。寝る。