私はルートAndroidデバイスを持っています。アプリケーションから別のアプリケーションをダウンロードしてインストールしたいと考えています。デバイスに SUPERUSER アプリケーションがインストールされています。
ダウンロードが完了したら、アプリケーションのインストールに次のコードを使用しています。
Process p = Runtime.getRuntime().exec("su");
InputStream es = p.getErrorStream();
DataOutputStream os = new DataOutputStream(
p.getOutputStream());
final String libs = "LD_LIBRARY_PATH=/vendor/lib:/system/lib ";
final String[] commands = {libs + "pm install -r " + result,"reboot"
};
for (String command : commands) {
Log.d(LOG_TAG, " command : " + command);
os.writeBytes(command + "\n");
}
os.writeBytes("exit\n");
Log.d(LOG_TAG, " DataOutputStream.writebytes ");
os.flush();
上記の coed は Android 4.0 で動作しています。しかし、Andorid 4.2.2 で同じコードを実行すると。セキュリティ例外に遭遇しました。
java.lang.SecurityException: Permission Denial: ブロードキャストはユーザー -1 として実行するように要求しますが、ユーザー 0 から呼び出しています。これには android.permission.INTERACT_ACROSS_USERS_FULL または android.permission.INTERACT_ACROSS_USERS が必要です
この例外にどのように対処できますか?
期待に感謝し、
よろしく、
AK