ルート化されたデバイスからアプリにアクセスできないように、 Titanium Backupアプリなどのルート化されたデバイスでアプリケーションをフリーズ/フリーズ解除するにはどうすればよいですか。デバイスがルート化されているかどうかを追跡する方法はありますか?
質問する
1753 次
2 に答える
4
RootTools ライブラリを使用して無効化/有効化コマンドを実行しています
CommandCapture command_enable = new CommandCapture(0,"pm enable "+ Package_Name);
RootTools.getShell(true).add(command_enable).waitForFinish();
CommandCapture command_disable = new CommandCapture(0,"pm disable "+ Package_Name);
RootTools.getShell(true).add(command_disable).waitForFinish();
于 2013-02-26T08:47:18.723 に答える
1
実際にrootコマンドを実行して応答をキャッチし、デバイスがルート化されているかどうかを判断することができます。
ここからコードを取得し、ニーズに合わせて少し変更すると、次のようになります。
public static boolean canRunRootCommands()
{
boolean retval = false;
Process suProcess;
try
{
suProcess = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(suProcess.getOutputStream());
DataInputStream osRes = new DataInputStream(suProcess.getInputStream());
if (null != os && null != osRes)
{
retval = true;
/*
*if got to this point, its safe to assume the
*device is rooted and here you can do something
*to tell your app that su is present. Or you could
*use the bool return of this function to know that the
*device is rooted and make the app act different.
*/
}
}
catch (Exception e)
{
// Can't get root !
// [...] meaning that the device is not rooted
retval = false;
}
return retval;
}
私はこれをテストしていませんが、きっとあなたを助けるでしょう。または、少なくともそれはあなたを正しい方向に向けます。
于 2013-02-25T09:25:41.677 に答える