Huaweiスマホのbloatwareを無効化するbatファイル[adb]

# はじめに
- Huaweiのスマホを買ったのですが、bloatware（あらかじめインストールされている余計なアプリ）があまりにも多かったので、バッチで無効化したいと考えました。
    - 対象はYahoo、Softbank、Huawei、Google、その他のアプリです。比率としては$1:1:4:4:0.5$くらいでした。
- ADBで無効化したいアプリを順番に無効化するスクリプトをインターネット上の情報をもとに自分用にアレンジしました。無効化すると、設定などの重要なアプリが動かなくなるので、アプリの選択には試行錯誤しました。

# 環境
- Windows 10
    - adbを導入済み
    - P20 Liteのドライバをインストール済み
- Huawei P20 Lite
    - YMobile ver
    - Developer optionを有効化済み
    - USBデバッグを有効化済み

# 無効化スクリプト
Windowsのバッチファイルになります。adbが`C:\adb`にある設定になっていますので、各自の環境に合わせて調整してください。
エミュレーターが復活することがあるので、パッケージをインストールするたびにエミュレーターを削除しています。また、無効化の間に100msの遅延を設けています。

```bat
@echo off
set /p Y=C:\adb
cd %Y%
adb devices
pause
for %%X in (
"jp.softbank.mb.dmb"
"jp.co.yahoo.android.ymobile.mail"
"jp.softbank.mb.cbrl"
"jp.co.yahoo.android.yjtop"
"jp.softbank.mb.parentalcontrols"
"jp.co.yahoo.android.ymsetupman"

"com.hicloud.android.clone"
"com.huawei.camera"
"com.huawei.android.thememanager"
"com.huawei.android.chr"
"com.huawei.android.FloatTasks"
"com.huawei.android.hsf"
"com.huawei.android.mirrorshare"
"com.huawei.search"
"com.huawei.contactscamcard"
"com.huawei.fido.uafclient"
"com.huawei.gameassistant"
"com.huawei.hidisk"
"com.huawei.himovie.overseas"
"com.huawei.hitouch"
"com.huawei.iaware"
"com.huawei.parentcontrol"
"com.huawei.pcassistant"
"com.huawei.vassistant"
"com.huawei.videoeditor"

"com.android.calendar"
"com.android.contacts"
"com.android.carrierconfig"
"com.android.cellbroadcastreceiver"
"com.android.deskclock"
"com.android.gallery3d"
"com.android.htmlviewer"
"com.android.hwmirror"
"com.android.mediacenter"
"com.android.printspooler"
"com.android.vpndialogs"
"com.android.wallpaper.livepicker"
"com.android.wallpapercropper"
"com.example.android.notepad"

"com.google.android.music"
"com.google.android.apps.docs"
"com.google.android.apps.photos"
"com.google.android.apps.tachyon"
"com.google.android.feedback"
"com.google.android.googlequicksearchbox"
"com.google.android.gm"
"com.google.android.videos"
"com.google.android.youtube" ) do (
    powershell -nop -c "& {sleep -m 100}"
    adb emu kill
    adb shell pm uninstall %%X
    adb emu kill
    adb shell pm uninstall -k --user 0 %%X
)
pause
```

# 無効化したいアプリの名前がわからない
App inspectorというアプリを用いることでアプリの名前(`com.huawei.hitouch`など)の特定が可能です

# アプリを復活させるには
必要なアプリも無効化してしまった場合には下のコマンドで復活させることができます

```bat
adb shell
cmd package install-existing <name of package>
```

# 無効化したアプリを有効化するスクリプト
上で述べたスクリプトで無効化したアプリは以下のスクリプトを用いることですべて有効化できます。

```bat
@echo off
set /p Y=C:\adb
cd %Y%
adb devices
pause
for %%X in (
"jp.softbank.mb.dmb"
"jp.co.yahoo.android.ymobile.mail"
"jp.softbank.mb.cbrl"
"jp.co.yahoo.android.yjtop"
"jp.softbank.mb.parentalcontrols"
"jp.co.yahoo.android.ymsetupman"

"com.hicloud.android.clone"
"com.huawei.camera"
"com.huawei.android.thememanager"
"com.huawei.android.chr"
"com.huawei.android.FloatTasks"
"com.huawei.android.hsf"
"com.huawei.android.mirrorshare"
"com.huawei.search"
"com.huawei.contactscamcard"
"com.huawei.fido.uafclient"
"com.huawei.gameassistant"
"com.huawei.hidisk"
"com.huawei.himovie.overseas"
"com.huawei.hitouch"
"com.huawei.iaware"
"com.huawei.parentcontrol"
"com.huawei.pcassistant"
"com.huawei.vassistant"
"com.huawei.videoeditor"

"com.android.calendar"
"com.android.contacts"
"com.android.carrierconfig"
"com.android.cellbroadcastreceiver"
"com.android.deskclock"
"com.android.gallery3d"
"com.android.htmlviewer"
"com.android.mediacenter"
"com.android.printspooler"
"com.android.vpndialogs"
"com.android.wallpaper.livepicker"
"com.android.wallpapercropper"
"com.example.android.notepad"

"com.google.android.music"
"com.google.android.apps.docs"
"com.google.android.apps.photos"
"com.google.android.apps.tachyon"
"com.google.android.feedback"
"com.google.android.googlequicksearchbox"
"com.google.android.gm"
"com.google.android.videos"
"com.google.android.youtube" ) do (
    powershell -nop -c "& {sleep -m 100}"
    adb emu kill
    adb shell cmd package install-existing %%X
)
pause
```

# コメント
- 以下に述べるアプリを消すと設定が開かなくなったり、上スワイプでのアプリ終了ができなくなります。
    - `com.android.managedprovisioning`
    - `com.android.providers.userdictionary`
- 無効化、有効化に失敗した場合はもう一度スクリプトを実行すると成功することがあります。

> 2021/07/10 追記
"com.huawei.systemmanager"　を無効化してしまうと通知の設定ができなくなるので除外

> 参考リンク
[Huaweiデバイスのbloatwareリスト](https://technastic.com/huawei-honor-bloatware-list-emui/)
[bloatwareの無効化方法](https://www.xda-developers.com/uninstall-carrier-oem-bloatware-without-root-access/)