3
1

More than 3 years have passed since last update.

制限対象の非SDKインターフェースの使用をLogcatで調査する

Last updated at Posted at 2020-11-07

はじめに

2020年11月2日以降、 AndroidアプリのアップデートはAndroid10(APIレベル29)以上を対象にしなければなりません。
Android10にはアプリに影響を与える可能性のある動作変更点あると公式ドキュメントに書かれています。
その動作変更点のひとつに、非SDKインターフェースに対する制限の更新があります。
開発しているアプリが、制限されている非SDKインターフェースを使用していないか調査する必要があります。
そこで、この記事では制限対象の非SDKインターフェースの使用をLogcatで調査する方法について紹介します。

前提

開発環境

  • Language:React Native
  • PC OS:Mac OS Catarina 10.15.7
  • Android OS:9, 10
  • Java:Oracle Java 12

非SDKインターフェースのテスト方法は複数ある

  • 非SDKインターフェースの使用を調べる方法は、公式ドキュメントで複数紹介されています。
    • デバッグ可能なアプリを使用したテスト
    • StrictMode APIを使用したテスト
    • veridexツールを使用したテスト
    • Android Studioのlintツールを使用したテスト
    • Play Consoleを使用したテスト
  • この記事ではデバッグ可能なアプリを使用したテストについて補足しながら紹介します。

調査方法

  • 1. アプリをデバッグビルドする
  • 2. 調査したいアプリのPIDを特定する
adb shell ps | grep <app name>
  • 3. 特定したPIDでフィルターをかけてログ出力する
adb logcat --pid=<pid> | grep "Accessing hidden field"
  • 4. アプリを操作し、以下のようなログが表示されなければ、制限対象の非SDKインターフェースは使用していないとのこと
Accessing hidden field Landroid/os/Message;->flags:I (light greylist, JNI)Accessing hidden field Landroid/os/Message;->flags:I (light greylist, JNI)

補足情報

adbとは

adbとはAndroid Debug Bridgeの略で、Androidデバイスを通信するための多用途コマンドラインツールです。
adbコマンドを使用することで、さまざまなデバイス操作をコマンドラインから実行できます。
この記事では非SDKインターフェースの使用を調べるためにadbコマンドを使用します。

参考:https://developer.android.com/studio/command-line/adb?hl=ja

shellコマンドとは

shellコマンドは、adbを介してデバイスコマンドを発行したり、対話型シェルを起動できます。
adb shell psを使用すると、デバイスで実行中のプロセスを一覧で表示することができます。
今回は調査したいアプリのPID(プロセスID)を特定するために、アプリ名でgrepします。

参考:https://developer.android.com/studio/command-line/adb?hl=ja#shellcommands

logcatコマンドとは

logcatコマンドは、デバイスが出力したシステムメッセージのログをダンプするコマンドラインツールです。
adb logcatで実行することができます。
logcatコマンドにはオプションが用意されていて、今回は特定のPIDでフィルターをかけるオプションを使用します。

参考:https://developer.android.com/studio/command-line/logcat?hl=ja

3
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
3
1