Android アプリケーションからのシェル コマンドの実行
Android アプリケーション内からシェル コマンドを実行しようとする場合、次の制限を考慮することが重要です。オペレーティングシステム。昇格された権限を取得するには、一時的な root アクセスを許可するためのより安全なメカニズムを提供する「su」ユーティリティを使用することをお勧めします。
標準の Android ターミナルでは、「su」を使用してコマンドを実行するには、次のように入力します。 「su」の後に、「screenrecord --time-limit 10 /sdcard/MyVideo.mp4」などの目的のコマンドを続けます。ただし、これと同じアクションを Java アプリケーション内から実行しようとすると、問題が発生する可能性があります。
「su」とコマンドを同時に実行しようとすると、潜在的な問題が 1 つ発生します。権限を適切に昇格するには、最初に「su」プロセスを起動し、続いて標準入力ストリームを介してコマンドを入力として提供する必要があります。
これを実現するには、コードの修正バージョンは次のとおりです。
try { Process su = Runtime.getRuntime().exec("su"); DataOutputStream outputStream = new DataOutputStream(su.getOutputStream()); // Provide the command through the standard input stream outputStream.writeBytes("screenrecord --time-limit 10 /sdcard/MyVideo.mp4\n"); outputStream.flush(); // Terminate the "su" process outputStream.writeBytes("exit\n"); outputStream.flush(); su.waitFor(); } catch (IOException | InterruptedException e) { throw new Exception(e); }
このようにコードを変更すると、「su」ユーティリティを使用して Android アプリケーションからシェル コマンドを正常に実行できるようになり、画面記録などのタスクに必要な昇格された権限を取得できるようになります。
以上がAndroid アプリケーションで昇格された特権を使用してシェル コマンドを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。