Xiaoxin Pad Pro 2022 Snapdragonが文鎮化したので復旧に向けたログ
経緯
Xiaoxin Pad Pro 2022 Snapdragon(以下XiaoxinPad)が自動アプデでZui 16に進化したところ、adbコマンドで行った日本語化が解除され中国語になってしまった。
通常通りadbコマンドで日本語化を行う。
作業工程1
そもそもWSLで導入したadbコマンドでUSB接続しているXiaoxinPadが出てこない問題。
$ adb devices
List of devices attached
なんも出てこない。
XiaoxinPad側は開発者オプションを有効にし、USBデバッグもOnにしている。
接続時はファイル転送に設定しているがadb devicesで表示されない。
$ adb kill-server && adb start-server
$ adb devices
List of devices attached
adbを再起動してもだめでした。
作業工程2
Windows Powershellでadbコマンドを実行できるようにする。
USB接続した端末がWSLに認識されるのにちょっと工夫が必要とのことで、それをするのであればWindows側で実行すればよいのでは?と思い至りました。
Google公式サイトからAndroid SDK Platform Toolsをダウンロード
- Android SDK Platform Tools
- ページ内の「Download SDK Platform Tools for Windows」をクリックしてダウンロード
- ZIPファイルを解凍(自分は
S:\FreeSoft\platform-tools
に解凍しました)
# Sドライブへ移動
PS C:\Users\dashi> S:
PS S:\> cd .\FreeSoft\platform-tools\
PS S:\FreeSoft\platform-tools> .\adb.exe version
Android Debug Bridge version 1.0.41
Version 35.0.2-12147458
Installed as S:\FreeSoft\platform-tools\adb.exe
Running on Windows 10.0.26100
windows側での実行OK
作業工程3
- タブレットをUSBケーブルでPCに接続
- タブレットの通知バーで「USB接続オプション」をタップして、「ファイル転送 (MTP)」を選択
- タブレットの「開発者向けオプション」で USBデバッグ が有効になっていることを確認
- adb devicesを実行
PS S:\FreeSoft\platform-tools> .\adb.exe devices
List of devices attached
XXXXXXXXXX device
XiaoxinPadが現れました。
作業工程4
adbコマンドが実行できるようになったのでロケールを日本語へ
順序が大事らしい、よくわからないが
# パス書くの面倒なので省略
.\adb.exe shell settings put global persist.sys.locale ja-JPzhzh
.\adb.exe shell settings put system system_locales ja-JPzhzh
.\adb.exe shell settings put secure locale ja-JPzhzh
put
を get
に変更するとタブレットの設定値が取得できるよ。
作業工程4
再起動して確認
やることは再起動して確認
それだけ。
再起動時にログインするところまでは日本語化していることを確認。
がしかし、1分経たずに中国語になってしまう。
設定画面もすべて中国語。
設定のlanguageで英語を選択すれば問題ないが、この状態で再起動してもまた中国語がやってくる。
再度英語を選択しなければならない。
糞面倒くさい。
それならば最初から強制日本語化したいよね。
もっとがんばることに。
事件発生
いろいろadbコマンド経由で設定をいじったり不要なアプリを削除したりしていると、 起動時のLenovo
マークからホーム画面に遷移しなくなった。
PCでいうブート画面やBIOS画面がずっと出ている状態。
この状態でも一応adbコマンドでデバイスを認識はできるみたい。
公式のfirmwareを拾ってROM焼きするか、factory reset(初期化)するか…が手っ取り早いみたいだが…。
引き続き作業工程5
ブート画面?から遷移せず電源ボタン長押しでも電源を切ることができないので、adbコマンド経由で落とす。
.\adb.exe reboot -p
-p
オプションで切れるみたい。なければ単に再起動。
電源ボタン、音量UPボタンを長押ししてリカバリーモードを起動。
キャッシュを削除してみようと思ったが、リカバリーモード画面にはその項目がなく、おそらくRoot化しないとダメっぽい。
断念。
作業工程6
logを確認してみる。
.\adb.exe logcat
12-16 16:17:53.265 7744 7744 E AndroidRuntime: *** FATAL EXCEPTION IN SYSTEM PROCESS: main
12-16 16:17:53.265 7744 7744 E AndroidRuntime: java.lang.NullPointerException: Attempt to invoke interface method 'android.os.Bundle android.content.IContentProvider.call(android.content.AttributionSource, java.lang.String, java.lang.String, java.lang.String, android.os.Bundle)' on a null object reference
12-16 16:17:53.265 7744 7744 E AndroidRuntime: at android.provider.Settings$NameValueCache.getStringForUser(Settings.java:3363)
12-16 16:17:53.265 7744 7744 E AndroidRuntime: at android.provider.Settings$Global.getStringForUser(Settings.java:17000)
12-16 16:17:53.265 7744 7744 E AndroidRuntime: at android.provider.Settings$Global.getString(Settings.java:16983)
12-16 16:17:53.265 7744 7744 E AndroidRuntime: at com.android.server.am.ActivityManagerConstants.updateConstants(ActivityManagerConstants.java:1425)
12-16 16:17:53.265 7744 7744 E AndroidRuntime: at com.android.server.am.ActivityManagerConstants.start(ActivityManagerConstants.java:1349)
12-16 16:17:53.265 7744 7744 E AndroidRuntime: at com.android.server.am.ContentProviderHelper.installSystemProviders(ContentProviderHelper.java:1387)
12-16 16:17:53.265 7744 7744 E AndroidRuntime: at com.android.server.SystemServer.startOtherServices(SystemServer.java:1625)
12-16 16:17:53.265 7744 7744 E AndroidRuntime: at com.android.server.SystemServer.run(SystemServer.java:995)
12-16 16:17:53.265 7744 7744 E AndroidRuntime: at com.android.server.SystemServer.main(SystemServer.java:699)
12-16 16:17:53.265 7744 7744 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
12-16 16:17:53.265 7744 7744 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:553)
12-16 16:17:53.265 7744 7744 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:959)
12-16 16:17:53.266 7744 7744 E SystemServiceRegistry: No service published for: dropbox
12-16 16:17:53.266 7744 7744 E SystemServiceRegistry: android.os.ServiceManager$ServiceNotFoundException: No service published for: dropbox
12-16 16:17:53.266 7744 7744 E SystemServiceRegistry: at android.os.ServiceManager.getServiceOrThrow(ServiceManager.java:166)
12-16 16:17:53.266 7744 7744 E SystemServiceRegistry: at android.app.SystemServiceRegistry$25.createService(SystemServiceRegistry.java:498)
12-16 16:17:53.266 7744 7744 E SystemServiceRegistry: at android.app.SystemServiceRegistry$25.createService(SystemServiceRegistry.java:495)
12-16 16:17:53.266 7744 7744 E SystemServiceRegistry: at android.app.SystemServiceRegistry$CachedServiceFetcher.getService(SystemServiceRegistry.java:2041)
12-16 16:17:53.266 7744 7744 E SystemServiceRegistry: at android.app.SystemServiceRegistry.getSystemService(SystemServiceRegistry.java:1715)
12-16 16:17:53.266 7744 7744 E SystemServiceRegistry: at android.app.ContextImpl.getSystemService(ContextImpl.java:2216)
12-16 16:17:53.266 7744 7744 E SystemServiceRegistry: at android.content.Context.getSystemService(Context.java:4424)
12-16 16:17:53.266 7744 7744 E SystemServiceRegistry: at com.android.server.am.ActivityManagerService.addErrorToDropBox(ActivityManagerService.java:10010)
12-16 16:17:53.266 7744 7744 E SystemServiceRegistry: at com.android.server.am.ActivityManagerService.handleApplicationCrashInner(ActivityManagerService.java:9614)
12-16 16:17:53.266 7744 7744 E SystemServiceRegistry: at com.android.server.am.ActivityManagerService.handleApplicationCrash(ActivityManagerService.java:9507)
12-16 16:17:53.266 7744 7744 E SystemServiceRegistry: at com.android.internal.os.RuntimeInit$KillApplicationHandler.uncaughtException(RuntimeInit.java:161)
12-16 16:17:53.266 7744 7744 E SystemServiceRegistry: at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1071)
12-16 16:17:53.266 7744 7744 E SystemServiceRegistry: at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1066)
12-16 16:17:53.266 7744 7744 E SystemServiceRegistry: at java.lang.Thread.dispatchUncaughtException(Thread.java:2306)
12-16 16:17:53.266 7744 7744 E SystemServiceRegistry: Manager wrapper not available: dropbox
12-16 16:17:53.267 7744 7744 I Process : Sending signal. PID: 7744 SIG: 9
これ以外にも結構エラーが。
ja-JPzhzhにした影響かもしれないのでいったん戻してみよう。
adb shell settings delete global persist.sys.locale
cmd: Can't find service: settings
おん?????
作業工程7
cmd: Can't find service: settings
ということはsettingsにアクセスできなくなっている??
自分何かやっちゃいました??
ということでPowerShellのhistoryを確認してみると…
.\adb.exe shell pm disable-user --user 0 com.android.providers.settings
脳死でこれやっちゃってましたぁぁぁぁぁあああああああああああああああああああああああああああああ
作業工程8(解決編)
com.android.providers.settingsを有効化しましょう。
.\adb.exe shell pm enable com.android.providers.settings
無事、ホーム画面が表示されました。
根本的解決ではなく画面が表示されたということ。
いまだに中国語でやんす。
Xを確認しても自分と同様の事象は起きておらず路頭に迷っています。
ちなみに、Legion Y700は日本語化解除されていません。
ZUI16なのに。
作業工程9
不要なアプリを削除しまくる。
こちらを参考に。
作業工程10
locale関連のログを見てみる
.\adb.exe logcat | Select-String -Pattern "locale"
- waiting for device -
12-16 20:43:40.583 1664 1664 I LgsiCountryCodeUtils: current locale is 'zh-CN'.
12-16 20:43:45.259 1664 1664 D SystemServerTiming: StartLocaleManagerService
12-16 20:43:45.259 1664 1664 I SystemServiceManager: Starting com.android.server.locales.LocaleManagerService
12-16 20:43:46.626 1664 1664 D SystemServerTiming: OnBootPhase_480_com.android.server.locales.LocaleManagerService
12-16 20:43:46.670 1664 1664 D SystemServerTiming: OnBootPhase_500_com.android.server.locales.LocaleManagerService
12-16 20:43:46.768 1664 1664 D SystemServerTiming: OnBootPhase_520_com.android.server.locales.LocaleManagerService
12-16 20:43:46.882 1664 2951 D SystemServerTimingAsync: InitThreadPoolExec:Update app-ops uidState in case package jp.co.c_lis.ccl.morelocale changed
12-16 20:43:47.246 1664 1664 D SystemServerTiming: OnBootPhase_550_com.android.server.locales.LocaleManagerService
12-16 20:43:47.652 1664 1664 D SystemServerTiming: OnBootPhase_600_com.android.server.locales.LocaleManagerService
12-16 20:43:47.878 1664 1664 V StorageManagerService: Package jp.co.c_lis.ccl.morelocale does not have legacy storage
12-16 20:43:47.888 1664 1664 D SystemServerTimingAsync: ssm.onStartUser-0_com.android.server.locales.LocaleManagerService
12-16 20:43:48.384 1664 2987 D WifiService: locale changed
12-16 20:43:49.669 1664 1843 D ActivityManagerTiming: OnBootPhase_1000_com.android.server.locales.LocaleManagerService
12-16 20:43:49.726 1664 2987 I SsidTranslator: Locale language changed to zh, alternate charset is now GBK
12-16 20:43:50.010 3935 3935 I XuiDeskClock: StopwatchService : registerLocaleReceiver ::
12-16 20:43:50.022 3935 3935 I XuiDeskClock: StopwatchService : unregisterLocaleReceiver ::
12-16 20:43:50.530 4088 4088 I GoogleInputMethodService: GoogleInputMethodService.onStartInput():1911 onStartInput(EditorInfo{EditorInfo{packageName=com.android.systemui, inputType=0, inputTypeString=NULL, enableLearning=false, autoCorrection=false, autoComplete=false, imeOpti
ons=0, privateImeOptions=null, actionName=UNSPECIFIED, actionLabel=null, initialSelStart=-1, initialSelEnd=-1, initialCapsMode=0, label=null, fieldId=0, fieldName=null, extras=Bundle[{ov_ime_target_act_token=android.os.BinderProxy@3df8938, ov_ime_target_win_mode=Fullscreen}], hi
ntText=null, hintLocales=[]}}, false)
12-16 20:43:53.830 1664 3108 I ZuiModeService: jp.co.c_lis.ccl.morelocale not managed app.
12-16 20:44:01.493 1664 1870 D SystemServerTimingAsync: ssm.onUnlockingUser-0_com.android.server.locales.LocaleManagerService
ChatGTPに要約してもろた
上記のほとんどがRoot化必須の対応だったため、packageの中で怪しいものをdisableしていくことに。
作業工程11
.\adb.exe shell pm list packages | Select-String -Pattern "zui|lenovo"
package:com.lenovo.lsf.device
package:com.zui.theme.settings.overlay.lime
package:com.lenovo.leos.cloud.sync
package:com.zui.deskclock.overlay.grace
package:com.zui.safecenter.overlay.pink
package:com.zui.desktoplauncher
package:com.zui.camera
package:com.lenovo.ue.device
package:com.zui.safecenter.overlay.golden
package:com.zui.SecretCode
package:com.zui.networkaclr
package:com.zui.pp
package:com.zui.launchersdk
package:com.zui.homesettings
package:com.zui.deviceidservice
package:com.zui.launcher
package:com.zui.setupwizard
package:com.zui.safecenter.overlay.mostbeautiful
package:com.zui.udevice
package:com.zui.safecenter.overlay.avengers
package:com.zui.wifip2p
package:com.zui.game.service
package:com.zui.safecenter.overlay.lime
package:com.zui.theme.settings.overlay.blue
package:com.zui.theme.settings.overlay.superhero
package:com.zui.freeform.sidebar
package:com.lenovo.weathercenter
package:com.tblenovo.lenovowhatsnew
package:com.zui.themes.provider
package:com.zui.theme.settings.overlay.mostbeautiful
package:com.zui.safecenter.overlay.superhero
package:com.zui.uface
package:com.zui.clone
package:com.lenovo.tbengine
package:com.zui.deskclock.overlay.blue
package:com.zui.dynamic.color.overlay
package:com.zui.contacts
package:com.zui.deskclock.overlay.superhero
package:com.zui.engine
package:com.zui.notes
package:com.zui.safecenter
package:com.zui.safecenter.overlay.blue
package:com.lenovo.lenovoprivacy
package:com.lenovo.hec.lenovoextend
package:com.zui.keyboardupdate
package:com.zui.keyboardupdate.olympia
package:com.lenovo.browser.hd
package:com.lenovo.hecplatform.hecagent
package:com.lenovo.penservice
package:com.zui.gallery
package:com.lenovo.lsf
package:com.zui.theme.settings
package:com.tblenovo.center
package:com.zui.deskclock.overlay.lime
package:com.zui.filemanager
package:com.tblenovo.tabpushout
package:com.zui.deskclock.overlay.mostbeautiful
package:com.zui.theme.settings.overlay.golden
package:com.zui.contacts.overlay.systemcontacts
package:com.lenovo.leos.appstore
package:com.zui.deskclock.overlay.golden
package:com.zui.recorder
package:com.zui.wallpapersetting
package:com.zui.theme.settings.overlay.avengers
package:com.lenovo.screensplit
package:com.zui.net.data.monitor
package:com.lenovo.levoice.caption
package:com.zui.cores
package:com.zuisdk
package:com.lenovo.ota
package:com.zui.resolver
package:com.zui.xlog
package:com.zui.launcher.overlay
package:com.lenovo.EngineeringCode
package:com.zui.deskclock.overlay.avengers
package:android.autoinstalls.config.Lenovo.tablet
package:com.zui.theme.settings.overlay.pink
package:com.zui.deskclock
package:com.zui.android.overlay.product
package:com.zui.safecenter.overlay.grace
package:com.zui.theme.settings.overlay.grace
package:com.lenovo.levoice_agent
package:com.lenovo.levoice.trigger
package:com.zui.wallpapercropper
package:com.zui.deskclock.overlay.pink
怪しいものをchatgptにピックアップしてもらいdisableしていく
disable~~~~
PS S:\FreeSoft\platform-tools> .\adb.exe shell pm disable-user --user 0 com.zui.safecenter
Package com.zui.safecenter new state: disabled-user
PS S:\FreeSoft\platform-tools> .\adb.exe shell pm disable-user --user 0 com.zui.setupwizard
Package com.zui.setupwizard new state: disabled-user
PS S:\FreeSoft\platform-tools> .\adb.exe shell pm disable-user --user 0 com.zui.networkaclr
Package com.zui.networkaclr new state: disabled-user
PS S:\FreeSoft\platform-tools> .\adb.exe shell pm disable-user --user 0 com.zui.homesettings
Package com.zui.homesettings new state: disabled-user
PS S:\FreeSoft\platform-tools> .\adb.exe shell pm disable-user --user 0 com.zui.deviceidservice
Package com.zui.deviceidservice new state: disabled-user
2025/05/14
現在も端末を再起動すると起動時は英語なのですが、すぐに中国語に切り替わります。
設定から言語を英語に選択しないと何書いてあるか全くわからない状態です…。
解決できないのでこのまま使用しています…。やっぱROM焼きするしかないのかな。
ADB Change Languageを入れて日本語指定してみましたが、無事中国語になりました。
カスタムROMしか打つ手なしです。