私は大規模な独自のネイティブライブラリが必要なAndroidアプリを開発しています。これにより、ASからのデプロイメント時間が大幅に増加します。これは非常に面倒です。私は、各ダウンロードでそれを含めるのではなく、共有ストレージからライブラリを動的にロードしたいと思います。どのようにpropietaryコードがAndroidからのlibをロードしているかを変更するには?
System.load("/data/data/com.package.app/extraLib.so");
このライブラリには独自のJavaラッパーも付属しているため、そのラッパーSystem.loadLibrary("Library");
が呼び出されているため、私はちょうどSystem.load("/data/data/com.package.app/extraLib.so");
を使用できません。したがって、libがASに含まれていない場合、プロプライエタリコードはUnsatisfiedLinkError
でクラッシュします。
私のアプリケーションの保護されたストレージの/lib
フォルダにlibを手動でコピーしようとしました。ただし、何らかの理由で/lib
フォルダが書き込み禁止になっています。 (はい、私は自分のアプリのJavaコードからコピーしていましたので、ファイルエクスプローラアプリではありませんので、rootは必要ありません)
リバースエンジニアリングをせずにプロプライエタリコードがlibをロードする場所を変更する方法はありますか?
コードインジェクション攻撃の影響を受け易い、安全でないアプリの開発方法をデモしていただきありがとうございます! – CommonsWare
@CommonsWareこれは、開発をスピードアップするだけです。 **リリースアプリには通常の方法が含まれています** –
@CommonsWareあなたは[完璧なソフトウェアとテストに関する他の錯覚]を読むべきです(https://www.goodreads.com/book/show/4060560-perfect-ソフトウェアとその他の錯覚について)膨大なネイティブライブラリがコードインジェクションやOSやコードの他の部分に影響されないことをどのようにして知ることができますか? –