【翻訳】Android Q行動変更:すべてのアプリケーション

4915 ワード

Android Qプラットフォームでは、アプリケーションに影響を与える可能性のある行動変更が行われています.以下の動作変更は、Android Q上で実行されるすべてのアプリケーションに影響します.いずれの「targetSdkValerson」を採用しても例外ではありません.アプリケーションをテストし、必要に応じて変更して、これらの変更を適切にサポートする必要があります(適用される場合).
また、Android Qをターゲットとしたプラットフォームにのみ影響するアプリケーションの動作変更リストを必ず確認してください.
注意:このページに記載されている変更に加えて、Android Qはユーザーのプライバシー保護を強化するために多くの変更と制限を導入しています.詳細については、Googleのプライバシーページを参照してください.
非SDKインタフェースの制限
アプリケーションの安定性と互換性を確保するために、Androidプラットフォームは、Android 9(APIレベル28)で使用できるSDK以外のインタフェースを制限し始めました.Android Qには、更新後の制限付き非SDKインタフェースのリスト(Android開発者とのコラボレーションおよび最新の内部テストに基づく)が含まれています.非SDKインタフェースの使用を制限する前に、利用可能な公開代替案があることを確保することを目標としています.
Android Qをターゲットプラットフォームにしない場合は、変更の一部がすぐに影響を与えない可能性があります.現在、グレーリストの一部の非SDKインタフェース(適用するターゲットAPIレベルに応じて)を使用できますが、非SDKメソッドまたはフィールドを使用すると、アプリケーションが実行できないリスクが高くなります.
自分のアプリケーションが非SDKインタフェースを使用しているかどうかを確認しない場合は、アプリケーションをテストして確認できます.アプリケーションが非SDKインタフェースに依存している場合は、SDK代替への移行計画を開始する必要があります.しかしながら、いくつかのアプリケーションが非SDKインタフェースを使用する有効な例を有することを知っている.非SDKインタフェースを使用する代替案がアプリケーションの機能に見つからない場合は、新しい共通APIを要求する必要があります.
詳細については、Android Qにおける非SDKインタフェースの制限状況の変化、および非SDKインタフェースの制限を参照してください.
NDK
Android Qには以下のNDK側の変更が含まれています.
共有オブジェクトにテキストの再配置を含めることはできません
Android 6.0(APIレベル23)では、共有オブジェクトでのテキスト再配置が禁止されています.コードはそのままロードされ、変更できません.この変更により、アプリケーションのロード時間が短縮され、セキュリティが向上します.
Android Qテスト版1および2では、SELinuxがAndroid 8.0(APIレベル26)以降のバージョンをターゲットとしたアプリケーションに強制的にこの制限を適用します.このようなアプリケーションがテキストの再配置を含む共有オブジェクトを引き続き使用する場合、障害のリスクが高くなります.
システムバイナリファイル/ライブラリが実行メモリのみにマッピングされました
Android Qから、システムバイナリファイルとライブラリは、コード再利用攻撃に対応するセキュリティ強化技術として、実行(読み取り不可)メモリのみにマッピングされます.実行のみとしてマークされているメモリセグメントを意図的または予期せぬ読み込みすると、SIGSEGVが放出されます.この読み込み動作がエラー、脆弱性、または意図的なメモリ自省から来た場合も例外ではありません./data/tombstones/の関連tombstoneファイルを確認して、クラッシュが変更によって引き起こされたかどうかを確認できます.実行のみに関連するクラッシュには、次の中止メッセージが含まれます.
    Cause: execute-only (no-read) memory access error; likely due to data in .text.
    

 
この問題を解決するには、開発者は、mprotect()を呼び出すことによって、メモリチェックの実行など、メモリセグメントのみを実行することを「読み取り+実行」とマークすることができる.ただし、アプリケーションとユーザーをよりよく保護できるため、後で実行のみに再設定することを強くお勧めします.ptraceの呼び出しには影響しないため、ptraceのデバッグにも影響しません.
WLANダイレクトブロードキャスト
Android Qでは、以下のWLAN直結に関する放送は粘り気を持たなくなった.
  • WIFI_P2P_CONNECTION_CHANGED_ACTION
  • WIFI_P2P_THIS_DEVICE_CHANGED_ACTION

  • アプリケーションが登録時にこれらのブロードキャストを受信することに依存している場合(これまで粘性があったため)、初期化時に適切なget()メソッドを使用して情報を取得します.
    Goデバイス上のSYSTEM_ALERT_WINDOW
    Android Q(Goバージョン)デバイス上で動作するアプリケーションはSYSTEM_を取得できませんALERT_WINDOW権限.これは、オーバーラップレイヤウィンドウを描くのにメモリが多すぎるため、低メモリAndroidデバイスのパフォーマンスに非常に有害です.
    Android 9以降を搭載したGoバージョンデバイス上で動作するアプリケーションにSYSTEM_ALERT_WINDOWの権限が付与されている場合は、デバイスがAndroid Qにアップグレードされても例外ではありません.ただし、まだこの権限を持っていないアプリケーションは、デバイスのアップグレード後にこの権限を取得できません.
    Goデバイス上のアプリケーション送信にACTION_がある場合MANAGE_OVERLAY_PERMISSION操作のIntentでは、自動的にこの要求を拒否し、ユーザーを設定画面に移動します.デバイスの速度が低下するため、この権限を付与できないと表示されます.Goデバイス上のアプリケーションがSettingsを呼び出すと.canDrawOverlays()では、このメソッドは常にfalseを返します.同様に、これらの制限は、デバイスがAndroid Qにアップグレードされる前にSYSTEM_ALERT_WINDOWの権限を受け取ったアプリケーションには適用されません.
    旧版Androidシステムをターゲットとしたプラットフォームへの応用に関する警告
    Android Qでは、Android 6.0(APIレベル23)以下のバージョンをターゲットとしたプラットフォームのアプリケーションをユーザが初めて実行すると、Androidプラットフォームがユーザに警告する.このアプリケーションがユーザーに権限の付与を要求する場合、アプリケーションが最初に実行される前に、アプリケーション権限を調整する機会がユーザーに提供されます.
    Google PlayのターゲットAPIに関する要求のため、ユーザーは最近更新されていないアプリケーションを実行するときにのみこれらの警告を表示します.他のショップを通じて配布されるアプリケーションについても、2019年に同様のターゲットAPIの要件を導入します.これらの要件を詳細に理解するには、2019年の拡張ターゲットAPIレベルの要件を参照してください.
    SHA-2 CBC暗号化キットを削除しました
    次のSHA-2 CBC暗号化キットがプラットフォームから削除されました.
  • TLS_RSA_WITH_AES_128_CBC_SHA256
  • TLS_RSA_WITH_AES_256_CBC_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384

  • これらの暗号化スイートは、GCMのような暗号化スイートを使用するよりも安全であり、ほとんどのサーバは、これらの暗号化スイートのGCMバリエーションとCBCバリエーションを同時にサポートするか、どちらもサポートしていません.
    注:アプリケーションとライブラリは、必要な暗号化スイートセットとgetSupportedCipherSuites()の戻り値を交差させ、将来の暗号化スイートの選択に関する証明を提供し、将来の削除を防止する必要があります.
    使用状況の適用
    Android Qでは、アプリケーションの使用状況に関する次のような行動変更が導入されています.
  • UsageStatsアプリケーションの使用状況の改善--画面分割または絵中画モードでアプリケーションを使用すると、Android QはUsageStatsを使用してアプリケーションの使用状況を正確に追跡できるようになりました.また、Android Qは、インストールされていないアプリケーションの使用状況を追跡できるようになりました.
  • アプリケーションに従って階調モードをオンにする--Android Qはアプリケーションを階調表示モードに設定できるようになった.
  • アプリケーションに従って干渉モードをオンにする--Android Qはアプリケーションを選択的に「干渉モード」に設定することができ、このときシステムは通知の表示を禁止し、推奨アプリケーションとして表示しない.
  • 一時停止と再生--Android Qでは一時停止したアプリケーションではオーディオを再生できません.

  • android.preferenceライブラリは廃止されましたandroid.preferenceライブラリは現在廃棄されています.開発者はAndroid X preferenceライブラリを使用するように変更する必要があります.これはAndroid Jetpackの一部です.移行および開発を支援する他のリソースを入手するには、更新された設定ガイドと、公開例のアプリケーションおよびリファレンスドキュメントを参照してください.