j3iiifn’s blog

ネットワーク、インフラ、プログラミングについての備忘録

Android端末にインストールされているアプリの一覧を作るワンライナー

動機

先日、Google Pixel 3aを購入した。 付属のアダプタを使用して古いAndroid端末からデータを移行してみたが、すべてのアプリのデータを移行できるわけではなかった。 仕方ないのでアプリをひとつひとつ開いてデータの移行ができているかチェックすることにしたのだが、結構な量のアプリがあるから、チェックリストを作りたくなった。 そこで、インストール済みアプリの一覧を出力するワンライナーを書いた。

前提

ADBコマンドを使える状態である。

ワンライナー

adb shell pm list package -3 \
| cut -d: -f2 \
| sort \
| while read pkg
do
  url="https://play.google.com/store/apps/details?id=${pkg}"
  app=$(curl -s "${url}" \
    | grep -o '<title id="main-title">.*</title>' \
    | sed -e 's/<[^>]*>//g' -e 's/ - Google Play の Android アプリ//g' -e 's/ - Apps on Google Play//g')
  echo -e "${pkg}\t${app}"
  sleep 1
done \
| tee 3party_applist.tsv

出力例

air.jp.lptc.molee.enterprise.kiriharanomori  きりはらの森
app.greyshirts.firewall NoRoot Firewall
co.speechnotes.speechnotes  Speechnotes - Speech To Text

パッケージ名だけだと何のアプリかわかりづらいから、Google Playで表示されるアプリ名も一緒に出力する。

それから、GoogleスプレッドシートExcelに貼り付けやすいようにTSV形式で出力するようにした。

Macなら cat 3party_applist.tsv | pbcopyクリップボードにコピーして、スプレッドシートにペーストすればチェックリストの出来上がり。