Remove dependency on useless getSystemContext from librootjava

This commit is contained in:
Mygod
2020-07-28 05:01:20 +08:00
parent fe68f72854
commit db165257f2
3 changed files with 12 additions and 4 deletions

View File

@@ -1,6 +1,9 @@
@file:JvmName("Utils")
package be.mygod.librootkotlinx
import android.annotation.SuppressLint
import android.content.Context
import android.os.Parcel
import android.os.Parcelable
import android.util.*
@@ -8,6 +11,12 @@ import kotlinx.android.parcel.Parcelize
class NoShellException(cause: Throwable) : Exception("Root missing", cause)
val systemContext by lazy {
val classActivityThread = Class.forName("android.app.ActivityThread")
val activityThread = classActivityThread.getMethod("systemMain").invoke(null)
classActivityThread.getMethod("getSystemContext").invoke(activityThread) as Context
}
@Parcelize
data class ParcelableByte(val value: Byte) : Parcelable

View File

@@ -13,7 +13,6 @@ import be.mygod.vpnhotspot.net.wifi.WifiP2pManagerHelper.requestDeviceAddress
import be.mygod.vpnhotspot.net.wifi.WifiP2pManagerHelper.requestPersistentGroupInfo
import be.mygod.vpnhotspot.net.wifi.WifiP2pManagerHelper.setWifiP2pChannels
import be.mygod.vpnhotspot.util.Services
import eu.chainfire.librootjava.RootJava
import kotlinx.android.parcel.Parcelize
import java.io.File
import java.io.IOException
@@ -99,7 +98,7 @@ object RepeaterCommands {
if (target == channel) channel = null
}
}
return initialize(RootJava.getSystemContext(), Looper.getMainLooper(), uninitializer).also {
return initialize(systemContext, Looper.getMainLooper(), uninitializer).also {
uninitializer.target = it
channel = it // cache the instance until invalidated
}

View File

@@ -5,10 +5,10 @@ import android.util.Log
import be.mygod.librootkotlinx.RootCommandNoResult
import be.mygod.librootkotlinx.RootServer
import be.mygod.librootkotlinx.RootSession
import be.mygod.librootkotlinx.systemContext
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
@@ -29,7 +29,7 @@ object RootManager : RootSession() {
}
}
})
Services.init(RootJava.getSystemContext())
Services.init(systemContext)
return null
}
}