Androidのアップデータスクリプト言語(Edify?)を使用して、自分が制御できる組み込みデバイスにAPKを無線でインストールしようとしています。 言語を説明するリンクは次のとおりです。
私の最初の試みは次のとおりでした。
package_extract_file("added_files/data/app/test.apk", "/data/app/test.apk");
その結果、test.apk
に自動的にインストールされました/data/data/com.acme.test
が、ディレクトリ/data/data/com.acme.test/lib
は空ですが、にはtest.so
、に含まれる共有ライブラリが含まれている必要がありますtest.apk
。(を使用して手動でインストールするadb install test.apk
と、ライブラリが抽出されます。)
次に、OSが自動的にAPKをインストールしないように、の/data
代わりにAPKを抽出してみました。スクリプトを使用して、APKをインストールしてみました。/data/app
/data/data
package_extract_file("added_files/data/app/test.apk", "/data/test.apk");
run_program("/system/bin/pm", "install", "/data/test.apk");
その結果、次のエラーが発生しました。
about to run program [/system/bin/pm] with 3 args
run_program: execv failed: Exec format error
run_program: child exited with status 1
上記のエラーが発生した理由がわかりません。
APKをインストールして、その共有ライブラリを自動的に抽出する方法はありますか?ライブラリを手動でインストールすることもできますが、それは避けたいと思っています。