はじめに

apk内の AndroidManifest.xml を確認するコマンドを作ったのでメモ

要は AXMLPrinter2.jar があれば、java で AndroidManifest.xml を読める

java -jar AXMLPrinter2.jar AndroidManifest.xml

以下を cat_android_manifest_from_apk などで保存して、chmod +x して使う

#!/usr/bin/env -S bash -e

script_dir=$(cd "$(dirname "${BASH_SOURCE:-$0}")" && pwd) && readonly script_dir
current_dir=$(pwd) && readonly current_dir
url="https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/android4me/AXMLPrinter2.jar"
jar="$script_dir/AXMLPrinter2.jar"

has() { command -v "${1}" >&/dev/null; }
dl_if_needed() {
  [[ -e $jar ]] && return
  curl -fSsL -o "$jar" "$url"
}
main() {
  if ! has java; then
    echo "==> No java found" >&2
    exit 1
  fi
  if [[ $# -eq 0 ]]; then
    echo "==> Specify apk" >&2
    exit 1
  fi
  local apk_name
  apk_name=$(basename "$1")
  local tmpd="$current_dir/tmp_$apk_name"
  if [[ ! -e $tmpd ]]; then
    unzip -q "$1" -d "$tmpd"
  fi
  dl_if_needed
  java -jar "$jar" "$tmpd/AndroidManifest.xml"
}
main "$@"

Refs