mabots' blog

知のレバレッジを最大化せよ (旧はてなダイアリーから移転しました。)

APKファイル設置パスいろいろ (Market/SD Card/Preinstalled)

  • 背景)Android MarketからダウンロードしたAPKやSDカードに移動する行為をした場合のAPKファイルの設置先などについてまとめてみた

Android MarketからダウンロードしたAPKファイルの置き場

  • 設置先は/data/app/以下
    • /data以下はroot permissionが必要 (rootないけどls的なことがしたい場合は後述)
    • 後述するが直接apkのファイルPATHを直接指定すればrootは不要。
adb pull /data/app/XXXX.apk
どのパッケージが入っているか確認する
  • package managerからfile pathを取得できる
adb shell pm list packages -f | grep パッケージ名
上記package managerから取得したpathを直接指定する
adb pull /data/app/パッケージ名-1.apk等

SDカードに移動した場合

  • Android 2.2からSDカードにアプリを移動できるようになった
  • Apkの実態形式ではなく機種ごとに固有のキーで暗号化されたapkファイルが設置される。
    • /mnt/sdcard以下はrootでなくても操作できるため
    • アプリ固有なプライベート("the dex files, private data directories, and native shared libraries")なデータについては引き続き本体に残る
  • 設置先は/mnt/asec/以下にパッケージ名のpathが作られ、そこ以下にdex等がばらされた上で暗号化されたapkとして保管される

プリインストールされているアプリ

  • ブラウザアプリなど初めからはいっているアプリは
  • 設置先/system/app/以下(が多い)