35 lines
1.0 KiB
Kotlin
35 lines
1.0 KiB
Kotlin
package be.mygod.vpnhotspot.root
|
|
|
|
import android.os.Parcelable
|
|
import be.mygod.librootkotlinx.RootCommandNoResult
|
|
import be.mygod.librootkotlinx.RootServer
|
|
import be.mygod.librootkotlinx.RootSession
|
|
import be.mygod.vpnhotspot.App.Companion.app
|
|
import be.mygod.vpnhotspot.BuildConfig
|
|
import be.mygod.vpnhotspot.util.Services
|
|
import eu.chainfire.librootjava.RootJava
|
|
import kotlinx.android.parcel.Parcelize
|
|
import timber.log.Timber
|
|
|
|
object RootManager : RootSession() {
|
|
@Parcelize
|
|
class RootInit : RootCommandNoResult {
|
|
override suspend fun execute(): Parcelable? {
|
|
RootServer.DEBUG = BuildConfig.DEBUG
|
|
Services.init(RootJava.getSystemContext())
|
|
return null
|
|
}
|
|
}
|
|
|
|
override fun createServer() = RootServer { Timber.w(it) }
|
|
override suspend fun initServer(server: RootServer) {
|
|
RootServer.DEBUG = BuildConfig.DEBUG
|
|
try {
|
|
server.init(app)
|
|
} finally {
|
|
server.readUnexpectedStderr()?.let { Timber.e(it) }
|
|
}
|
|
server.execute(RootInit())
|
|
}
|
|
}
|