Notice
Recent Posts
Recent Comments
Link
투케이2K
523. (kotlin/코틀린) [기능 보완] isRootingDevice : 휴대폰 루팅 상태 체크 수행 - Runtime exec , rootingFiles check 본문
Kotlin
523. (kotlin/코틀린) [기능 보완] isRootingDevice : 휴대폰 루팅 상태 체크 수행 - Runtime exec , rootingFiles check
투케이2K 2024. 8. 27. 21:15[개발 환경 설정]
개발 툴 : AndroidStudio
개발 언어 : Kotlin
[소스 코드]
// -----------------------------------------------------------------------------------------
// TODO [SEARCH FAST] : [isRootingDevice] : 휴대폰 루팅 상태 체크 수행
// -----------------------------------------------------------------------------------------
fun isRootingDevice(mContext: Context?): Boolean {
/**
* // -----------------------------------------
* [isRootingDevice 메소드 설명]
* // -----------------------------------------
* 1. 휴대폰 루팅 상태 체크 수행
* // -----------------------------------------
* 2. 호출 방법 :
*
* C_StateCheck.isRootingDevice(A_Main@this)
* // -----------------------------------------
* 3. 리턴 데이터 :
*
* 루팅 인 경우 true / 아니면 false
* // -----------------------------------------
*/
// [리턴 변수 선언 실시]
var returnData = false
// [su 명령이 실행 가능한지 확인]
var process: Process? = null
try {
// [su 명령 수행]
process = Runtime.getRuntime().exec("su")
// [리턴 변수 삽입]
returnData = true
} catch (e: Exception) {
} finally {
// [Process 종료]
if (process != null) {
try {
process.destroy()
} catch (e: Exception) {
}
}
// [내부 프로그램 파일 추가 체크]
try {
if (returnData == false) {
val rootFilesPath = arrayOf(
"/su/bin/su",
"/su/xbin/su",
"/su/bin/.user/.su",
"/system/xbin/su",
"/system/bin/su",
"/system/bin/.user/.su",
"/dev/com.noshufou.android.su",
"/data/data/com.tegrak.lagfix",
"/data/data/eu.chainfire.supersu",
"/data/data/com.noshufou.android.su",
"/data/data/com.jrummy.root.browserfree",
"/system/app/Superuser.apk",
"/data/app/com.tegrak.lagfix.apk",
"/data/app/eu.chainfire.supersu.apk",
"/data/app/com.noshufou.android.su.apk",
"/data/app/com.jrummy.root.browserfree.apk",
"/sbin/su",
"/system/su",
"/system/sbin/su",
"/system/xbin/mu",
"/system/bin/.ext/.su",
"/system/usr/su-backup",
"/system/app/su.apk",
"/system/bin/.ext",
"/system/xbin/.ext",
"/data/local/xbin/su",
"/data/local/bin/su",
"/system/sd/xbin/su",
"/system/bin/failsafe/su",
"/data/local/su"
)
val rootingFiles = arrayOfNulls<File>(rootFilesPath.size)
for (i in rootFilesPath.indices) {
rootingFiles[i] = File(rootFilesPath[i])
}
for (rootingFile in rootingFiles) {
if (rootingFile != null && rootingFile.exists() && rootingFile.isFile) {
// [리턴 변수 삽입]
returnData = true
break
}
}
}
} catch (ez: Exception) {
ez.printStackTrace()
}
}
// [로그 출력 실시]
//*
// ===============================================================
S_Log._F_(mContext!!, "휴대폰 루팅 상태 체크 수행", arrayOf(
"RETURN :: $returnData"
))
// ===============================================================
// */
// [리턴 반환 실시]
return returnData
}
반응형
'Kotlin' 카테고리의 다른 글
Comments