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 package be.mygod.librootkotlinx
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.Context
import android.os.Parcel import android.os.Parcel
import android.os.Parcelable import android.os.Parcelable
import android.util.* import android.util.*
@@ -8,6 +11,12 @@ import kotlinx.android.parcel.Parcelize
class NoShellException(cause: Throwable) : Exception("Root missing", cause) 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 @Parcelize
data class ParcelableByte(val value: Byte) : Parcelable 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.requestPersistentGroupInfo
import be.mygod.vpnhotspot.net.wifi.WifiP2pManagerHelper.setWifiP2pChannels import be.mygod.vpnhotspot.net.wifi.WifiP2pManagerHelper.setWifiP2pChannels
import be.mygod.vpnhotspot.util.Services import be.mygod.vpnhotspot.util.Services
import eu.chainfire.librootjava.RootJava
import kotlinx.android.parcel.Parcelize import kotlinx.android.parcel.Parcelize
import java.io.File import java.io.File
import java.io.IOException import java.io.IOException
@@ -99,7 +98,7 @@ object RepeaterCommands {
if (target == channel) channel = null if (target == channel) channel = null
} }
} }
return initialize(RootJava.getSystemContext(), Looper.getMainLooper(), uninitializer).also { return initialize(systemContext, Looper.getMainLooper(), uninitializer).also {
uninitializer.target = it uninitializer.target = it
channel = it // cache the instance until invalidated 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.RootCommandNoResult
import be.mygod.librootkotlinx.RootServer import be.mygod.librootkotlinx.RootServer
import be.mygod.librootkotlinx.RootSession import be.mygod.librootkotlinx.RootSession
import be.mygod.librootkotlinx.systemContext
import be.mygod.vpnhotspot.App.Companion.app import be.mygod.vpnhotspot.App.Companion.app
import be.mygod.vpnhotspot.BuildConfig import be.mygod.vpnhotspot.BuildConfig
import be.mygod.vpnhotspot.util.Services import be.mygod.vpnhotspot.util.Services
import eu.chainfire.librootjava.RootJava
import kotlinx.android.parcel.Parcelize import kotlinx.android.parcel.Parcelize
import timber.log.Timber import timber.log.Timber
@@ -29,7 +29,7 @@ object RootManager : RootSession() {
} }
} }
}) })
Services.init(RootJava.getSystemContext()) Services.init(systemContext)
return null return null
} }
} }