2013-02-25 3 views
0

Как я могу Замораживания/разморозить приложения на устройстве коренятся как титаном резервного копирования приложения так, чтобы я сделать мое приложение, не из, доступными коренятся устройства. Любой метод отслеживания корневого устройства или нет?Как заморозить приложения на коренятся андроид устройства

ответ

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(); 
+0

Вы знаете, если есть также способ проверить, если это «замороженный»? – NoBugs

+0

Зачем использовать 'CommandCapture', когда он является расширением' Command', предназначенным для хранения вывода? http://code.google.com/p/roottools/source/browse/trunk/Developmental/RootTools_sdk3_generic/src/com/stericson/RootTools/Command.java?r=208 – NoBugs

1

Возможно, вы попытались запустить корневую команду и поймать ответ и определить, связано ли устройство.

Принимая код из here и изменения его немного, чтобы удовлетворить ваши потребности, я думаю, что он может идти, как это:

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; 
     } 

Я не проверял это, но я уверен, что это поможет вам. Или, по крайней мере, он укажет вам правильный путь.