powershell + adbコマンドでやってみます。
adbコマンド実行するには
SDK PlatForm-toolsダウンロードして適当なところに置けばいいだけでした。
adb.exeのパスを通せばコマンドとして普通に使えますが、多分今日しか使わないのでパス通さずadb.exeのあるところで作業してます。
コマンド頭に.\
ついてますがお気になさらず
発端は内臓ストレージの逼迫だったわけですが、
内臓ストレージの開放には余り効果がありませんでした。
むかつくアプリの削除はできますが、使ってないのでデータ量少なくて削除してもあんまり効果がありません。
アプリのapkファイルバックアップ
めんどくさいので全部apkバックアップ
apkファイルのパス一覧取得
.\adb shell pm list packages -f | Select-string "package:.+\.apk" | % { $_.matches.Value -replace "^package:", "" }
テキストファイルに保存
.\adb shell pm list packages -f | Select-string "package:.+\.apk" | % { $_.matches.Value -replace "^package:", "" } > packagepathlists.txt
apkをまとめてpull
先ほどのテキストファイル使って「カレントディレクトリ\apklists」ディレクトリに保存します。
>$packagelists = Get-Content ".\packagepathlists.txt"
>$packagelists | ForEach{ .\adb pull $_ .\apklists\ }
無効化したアプリをまとめて削除
無効化アプリのリスト
-dオプションで無効化したアプリだけリスティングできます。
'''package:(package name)'''な書式なので頭の'''package:```を削除します
なんか空白行が出てきたので削除・・・。
.\adb shell pm list packages -d | % { $_ -replace "^package:", "" } | where-object { $_.trim() -ne "" }
無効化アプリのリストを変数につっこんでまとめてuninstall
-kオプションをなくせばファイルごと消せるらしい(復帰不可能)
またはclear でファイルも消せるらしい
>$disableAppLists = .\adb shell pm list packages -d | % { $_ -replace "^package:", "" } | where-object { $_.trim() -ne "" }
>$disableAppLists | ForEach { .\adb shell pm uninstall -k --user 0 $_ }
>$disableAppLists | ForEach { .\adb shell pm clear $_ }