mirror of
https://github.com/awfixers-stuff/OwnDroid.git
synced 2026-03-23 11:05:59 +00:00
47 lines
1.4 KiB
Kotlin
47 lines
1.4 KiB
Kotlin
package com.bintianqi.owndroid.dpm
|
|
|
|
import android.os.IBinder
|
|
import android.system.Os
|
|
import com.bintianqi.owndroid.IUserService
|
|
import java.io.BufferedReader
|
|
import java.io.InputStreamReader
|
|
|
|
var service:IUserService? = null
|
|
|
|
class ShizukuService: IUserService.Stub() {
|
|
override fun asBinder(): IBinder {
|
|
TODO("Not yet implemented")
|
|
}
|
|
|
|
override fun destroy(){ }
|
|
|
|
override fun execute(command: String?): String {
|
|
var result = ""
|
|
val process:Process
|
|
try {
|
|
process = Runtime.getRuntime().exec(command)
|
|
val exitCode = process.waitFor()
|
|
if(exitCode!=0){ result+="Error: $exitCode" }
|
|
}catch(e:Exception){
|
|
e.printStackTrace()
|
|
return e.toString()
|
|
}
|
|
try {
|
|
val outputReader = BufferedReader(InputStreamReader(process.inputStream))
|
|
var outputLine: String
|
|
while(outputReader.readLine().also {outputLine = it}!=null) { result+="$outputLine\n" }
|
|
val errorReader = BufferedReader(InputStreamReader(process.errorStream))
|
|
var errorLine: String
|
|
while(errorReader.readLine().also {errorLine = it}!=null) { result+="$errorLine\n" }
|
|
} catch(e: NullPointerException) {
|
|
e.printStackTrace()
|
|
}
|
|
if(result==""){ return "No result" }
|
|
return result
|
|
}
|
|
|
|
override fun getUid(): String {
|
|
return Os.getuid().toString()
|
|
}
|
|
}
|