Android 9 Pie では隠れた API 制限が導入されましたが、Android 11 ではメタリフレクション バイパスを削除するためにそれらの制限が強化されます。
事情を知らない人のために説明すると、Google は Android 9 Pie にかなり厄介な変更を導入しました。これは、Android で可能なことの限界を押し広げようとしている熱心な開発者にとって懸念事項です。 もちろん、非表示の API ブラックリストの追加について話しています。 アプリケーションの安定性を促進する目的で、Google はほとんどの隠し API、つまり Android フレームワークには存在するが Android SDK には文書化されていない API へのアクセスをブロックしました。 これらの API は、Android 9 Pie まではリフレクション経由でアクセスできましたが、現在でもメタ リフレクションの回避策を使用してアクセスできます。
私が何のことを言っているのか分からない場合は、おそらく次のように考えるべきです。 私が書いた記事を読んでください 数か月前にこの件に関して。 メタ リフレクションとその仕組みについて知っておくべきことをすべて説明します。 残念ながら、Google はこの回避策に気づいたようです (おっと)。 AOSP への新しいコミットで、Google は Android の隠し API チェックを「強化」するコードを導入しました。 これは基本的に、メタ リフレクションが機能しなくなることを意味します。
もちろん、これはすべてのアプリに影響するわけではありません。 元の API ブラックリストと同様に、Android 11 (API レベル 30) 以降をターゲットとするアプリのみが影響を受けます。 API レベル 29 以下をターゲットにして、メタ リフレクションを使用することもできます。 Playストアの場合 ターゲット SDK の最小要件は段階的に増加しますただし、これは長い間有効な回避策ではありません。
現時点では、API 30 をターゲットとするアプリに対する回避策はわかりません。 ただし、Android 11 の登場はまだ先のことなので、誰かがアクセスを復元する方法を見つけてくれる可能性は十分にあります。 それまでの間、非表示の API を使用している場合は、次のことを行ってください。
公開するようリクエストを提出する Android 11では。 C++ と Java の分析が得意で、この小さなブラックリストの状況を「修正」したい場合は、次のようにします。 関連するコミットを見てください.