0
1

More than 5 years have passed since last update.

apkからpackage, 署名, APIの向き先 を確認したい

Last updated at Posted at 2018-12-02

こんにちは、ニジボックスで働いてます、tack.saitoです。
弊社では受託開発も行っていて、APKを納品するスタイルなこともあります。

このAPKを渡す直前、思うことがあります。

  • 本番のAPI向いてるよね...?
  • packageは本番のモノだよな...
  • 署名してる...よね

と不安になることがよくあります。

自分がビルドしていないケースもあれば、
きちんとビルドした...(ような気がする)
なんてこともあるわけで。

これらが守れてないと信頼もなくなるので、気をつけたいです。

てな流れがあり...

packageと署名とAPIの向き先を確認、を1コマンドにしよう

今まで

packageチェック

/PATH/Android/sdk/build-tools/27.0.3/aapt l -a application.apk | grep "A: package"
で、表示されるものを確認(build-toolsのversionはよしなに)

署名

keytool -list -printcert -jarfile application.apk
で、チェック。

本番API向いてるかどうかのチェック

adb install
で、実機で動かし、「本番だね。」と、手動チェック

いちいち...めんどくさいですね。(やってました)

これから

./android-moromoro-check.sh application.apk
で、一発OK

android-moromoro-check.sh
#!/bin/bash

AAPT_PATH="/PATH/Android/sdk/build-tools/27.0.3/aapt"
API_STG_PATH="https://stg.example.com"
API_PRO_PATH="https://example.com"

echo PACKAGE!!
${AAPT_PATH} l -a $1 | grep "A: package"
echo ================
echo STG_PATH!!
${AAPT_PATH} d strings $1  | grep ${API_STG_PATH}
echo ================
echo PRO_PATH!!
${AAPT_PATH} d strings $1  | grep ${API_PRO_PATH}
echo ================
echo "証明書"!!
keytool -list -printcert -jarfile $1

aaptコマンドで、packageを見にいくのと、string.xml見にいくスタイル。
情報多過ぎるので、grepして欲しい情報だけ引っ張ってます。
STG_PATH!!部分が出てると「あかん、STG向いてる...」っていう感じですね。

正直、APIの部分は手動しかないかなーと思ってたのですが、
APIのドメイン部分はstring.xmlに記述してあり
デバッグビルドと本番ビルドとで参照を変えていたので今回はうまく行きました。

APIのラッパークラス内に定義してある、みたいなパターンは...どうしたらいいか分かりません。

今年もアドベントカレンダー、楽しいです。
現場からは以上でーす。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1