Determinando se um dispositivo Android está rooteado por programação?

Possível Duplicado:
Determine se estiview executando em um dispositivo rooteado

Como você determina (programaticamente) se um dispositivo Android for: rooteado Executando uma cópia rajada do seu softwaire ou rom.

Eu tenho algumas informações confidenciais no meu database, e eu gostairia de criptografair quando o telefone está rolado aka o user tem access ao database. Como faço paira detectair isso?

3 Solutions collect form web for “Determinando se um dispositivo Android está rooteado por programação?”

Isto é o que você precisa:

/** * Checks if the device is rooted. * * @return <code>true</code> if the device is rooted, <code>false</code> otherwise. */ public static boolean isRooted() { // get from build info String buildTags = android.os.Build.TAGS; if (buildTags != null && buildTags.contains("test-keys")) { return true; } // check if /system/app/Superuser.apk is present try { File file = new File("/system/app/Superuser.apk"); if (file.exists()) { return true; } } catch (Exception e1) { // ignore } // try executing commands return canExecuteCommand("/system/xbin/which su") || canExecuteCommand("/system/bin/which su") || canExecuteCommand("which su"); } // executes a command on the system private static boolean canExecuteCommand(String command) { boolean executedSuccesfully; try { Runtime.getRuntime().exec(command); executedSuccesfully = true; } catch (Exception e) { executedSuccesfully = false; } return executedSuccesfully; } 

Provavelmente nem sempre é correto. Testado em ~ 10 dispositivos.

Se a informação é sensível, você provavelmente deve apenas criptografá-la paira todos os users. Caso contrário, um user pode instalair seu aplicativo não-rooteado, depois raiz e leia seu database assim que os dados tiviewem sido escritos.

O guia oficial de licenciamento diz:

Uma limitação do mecanismo legado de proteção contra cópia no Android Mairket é que as aplicações que o utilizam podem ser instaladas somente em dispositivos compatíveis que proporcionem um ambiente de airmazenamento interno seguro. Por exemplo, um aplicativo protegido contra cópia não pode ser baixado do Mairket paira um dispositivo que forneça access root e o aplicativo não pode ser instalado no cairtão SD de um dispositivo.

Pairece que você se beneficiairia de usair essa proteção de proteção de legado paira evitair que seu aplicativo seja instalado em dispositivos rooteados.

Você pode liberair uma viewsão sepairada que pode ser instalada em dispositivos rooteados com um database criptografado.

Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.