これは疑問な質問ですが、NDK Apps Linkingに関するAndroid Nの変更に関するドキュメントに記載されているように、私のアプリケーションがAndroidのプライベートなものにアクセスしているかどうかを確認する必要がありますとしょうかん。問題は、もし私がアプリケーションを持っていれば、このアプリケーションかその依存関係のどれかがプライベートライブラリにアクセスしているかどうかを検出する方法でしょうか?Android N:NDK Appsプラットフォームライブラリにリンクする
答えて
あなたがndk-build
を使用している場合は、明示的に許可されていないものをリンクしている場合、我々は警告を発します:https://android.googlesource.com/platform/ndk/+/17f4d9e8ec1d48db9035ca3103254a39efae3899/build/core/build-binary.mk#84
をこの警告は、非NDKライブラリをINGのdlopen
によって回避することができ、または構築することにより、リンクするあなた自身のスタブ。 Android N以降で実行している場合、これを回避してもアプリは読み込まれません。
その他のビルドシステムでは、アプリ内にあるもの(APKに同梱)またはsystem_libs
リストにあるもののみをリンクしていることを確認してください(サポートするために新しいライブラリが追加されることがありますhttps://android.googlesource.com/platform/ndk/+/master/build/core/build-binary.mk#61
上記のようにreadelf -aD * libfile | grep "NEEDED"を使用するか、必要なlibsとrpathを表示するためにpatchelfを使用すると、より便利なimhoになります。
LDFLAGSをLDLIBSとして使用することで、アンドロイドNプライベートlibの制限を回避することがよくあります。または、あなたが依存するライブラリを静的にリンクするだけです。私は静的にlibcをコンパイルし、LDFLAGSで-lcを渡して静的なバイナリを生成することがよくあります。
私は制限の疲れを取得する傾向があるとちょうど依存関係の私の独自のバージョンを作ると
ここ
https://github.com/Surge1223/interfacer/blob/n-rootless/jni/Android.mk
AOSP開発者は、JNIを使用することはほとんど不可能だ参照でそれらを追加するに頼りますrootアクセスを必要としないlibs。
は、私がアプリケーションを持っている場合、私はIPCのバインダーに、いくつかの理由のlibnativehelperが必要ですが、システムのバージョンを使用しているためlibbinderが必要
上記のリンクで私に
- 1. Javaプラットフォームライブラリの異常
- 2. StartActivitity()Android Appsでクラッシュする
- 3. Android force stop apps
- 4. Android Apps Testing
- 5. Android - Huawei Protected apps
- 6. Javaのプラットフォームライブラリとは何ですか
- 7. AndroidのGoogle Appsデバイスポリシー
- 8. Android Pay in Hybrid Apps
- 9. Google Appsスクリプトのカレンダーイベントにリンク(URL)を取得する
- 10. AndroidでGoogle Appsスクリプトを実行する
- 11. MaximoAnwhere-7.6 Android Apps開発
- 12. Android AppsとApacheの認証
- 13. Android Things-Appsのアップデート方法
- 14. Android Lite Appsの仕組み
- 15. GoogleサイトでGoogle Appsスクリプトをリンクする方法
- 16. Google Apps Scriptを使用してスプレッドシートのセルにリンクを追加する方法
- 17. Android Marketplaceを管理するGoogle Appsを公開する
- 18. androidのボタンをリンクする
- 19. android system v8とリンクするには?
- 20. android webviewのリンクを無効にする
- 21. androidのlibusbに対するコンパイルとリンク
- 22. ネイティブライブラリをAndroidプロジェクトにリンクする
- 23. Android SDKツールをVisual Studioにリンクする
- 24. Android StudioとPhpmyAdminをリンクするには
- 25. Azure Mobile Apps android 3.3ログインフロー、日食
- 26. apps-for-androidが動作しない
- 27. Android Appsへの更新の公開
- 28. Android AppsへのCSVファイルのインポートSqliteデータベース
- 29. AndroidのManage appsへのプログラムによるアクセス
- 30. Xamarinは、特定のプラットフォームライブラリからWCFデータをPCLに返します。
非常に迷惑なアクセスを拒否することを回避しましたこれらのアプリケーションがプライベートライブラリにリンクしているかどうかは分かりませんが、私はコードを書いていません。どうすれば確認できますか? –
'readelf -d $ THELIBRARY'は、リンク先のライブラリを教えてくれます。 –
そしてアプリケーションがそれに依存している 'THELIBRARY'を知る方法は?どのようにそれを検出するには?私はアプリケーションコードを書かなかったので、洞窟の内部については何も知らないが、アプリケーションまたは依存関係がプライベートライブラリにリンクしているかどうかを確認する必要があるのだろうか?それをチェックする方法? –