Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- object RootUtil {
- val isDeviceRooted: Boolean
- get() = checkRootMethod1() || checkRootMethod2() || checkRootMethod3()
- private fun checkRootMethod1(): Boolean {
- val buildTags = Build.TAGS
- return buildTags != null && buildTags.contains("test-keys")
- }
- private fun checkRootMethod2(): Boolean {
- val paths = arrayOf(
- "/system/app/Superuser.apk",
- "/sbin/su",
- "/system/bin/su",
- "/system/xbin/su",
- "/data/local/xbin/su",
- "/data/local/bin/su",
- "/system/sd/xbin/su",
- "/system/bin/failsafe/su",
- "/data/local/su",
- "/su/bin/su"
- )
- for (path in paths) {
- if (File(path).exists()) return true
- }
- return false
- }
- @Suppress("SwallowedException", "TooGenericExceptionCaught")
- private fun checkRootMethod3(): Boolean {
- var process: Process? = null
- return try {
- process = Runtime.getRuntime().exec(arrayOf("/system/xbin/which", "su"))
- val inputReader = BufferedReader(InputStreamReader(process.inputStream))
- inputReader.readLine() != null
- } catch (t: Throwable) {
- false
- } finally {
- process?.destroy()
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement