etsuxのブログ

自分がハマったことなどを記録しています。

LG V20 PRO L-01Jのアプリを削除(adbをバッチ化)

LGのV20 PRO L-01J(もちろん中古)を購入。

まずはアプリ一覧から不要なアプリをアンインストール or 無効化。

次にadbでアンインストールするために開発者オプションを有効化。

  1. [設定]>[端末情報]>[ソフトウェア情報]>[ビルド番号]を5回タップ。
  2. [設定]>[ドコモのサービス/クラウド]>[USBデバッグ切替]でチェックをON
    ※[開発者向けオプション]>[USデバッグ]はdisableで操作できない!
  3. PCにUSB接続してデバッグ

アンインストール対象のパッケージ名を調べるために「Aplin ポスト無効化マネージャー」をインストール。

 

通常アンインストールできなくてもadbコマンドでアンインストールできる。アンインストールする前にapkを抽出しておけば後で再インストールできる。簡単にできるようにバッチファイル化。

  1. 「package?」のプロンプトで削除対象のパッケージの部分文字列を入力
  2. adb shell pm list packagesから部分一致するパッケージ名をfindstrで抽出
  3. 「uninstall?」のプロンプトで「Y」を入力した場合は、
    adb shell pm pathでapkのパスを取得
    adb pullで取り出し
    adb shell pm uninstallでアンインストール

 

@echo off
setlocal enabledelayedexpansion
if not exist apk mkdir apk
set LOGFILE=apk\uninstall.log
set /p STR=package? 
for /F %%I in ('call adb shell pm list packages ^| findstr %STR%') do (
    set LINE=%%I
    set PKG=!LINE:package:=!
    echo !PKG!
    set /p YN=uninstall? 
    if "!YN!"=="Y" call :PKG_UNINSTALL !PKG!
)
goto :eof

:PKG_UNINSTALL
set PKG=%1
for /F %%I in ('call adb shell pm path !PKG!') do (
    set LINE=%%I
    set APK=!LINE:package:=!
    echo !APK!
    call adb pull !APK! apk
    echo %date% %time% !PKG! !APK! >> %LOGFILE%
    call adb shell pm uninstall -k --user 0 !PKG!
)
exit /b