Commit 06dc6df2 authored by topjohnwu's avatar topjohnwu

Allow dalvik runtime to load snet

parent ff8460b3
...@@ -9,7 +9,6 @@ import com.topjohnwu.magisk.base.BaseActivity ...@@ -9,7 +9,6 @@ import com.topjohnwu.magisk.base.BaseActivity
import com.topjohnwu.magisk.base.BaseFragment import com.topjohnwu.magisk.base.BaseFragment
import com.topjohnwu.magisk.data.repository.MagiskRepository import com.topjohnwu.magisk.data.repository.MagiskRepository
import com.topjohnwu.magisk.databinding.FragmentMagiskBinding import com.topjohnwu.magisk.databinding.FragmentMagiskBinding
import com.topjohnwu.magisk.extensions.inject
import com.topjohnwu.magisk.extensions.openUrl import com.topjohnwu.magisk.extensions.openUrl
import com.topjohnwu.magisk.extensions.subscribeK import com.topjohnwu.magisk.extensions.subscribeK
import com.topjohnwu.magisk.extensions.writeTo import com.topjohnwu.magisk.extensions.writeTo
...@@ -21,6 +20,7 @@ import com.topjohnwu.magisk.view.dialogs.* ...@@ -21,6 +20,7 @@ import com.topjohnwu.magisk.view.dialogs.*
import com.topjohnwu.superuser.Shell import com.topjohnwu.superuser.Shell
import dalvik.system.DexFile import dalvik.system.DexFile
import io.reactivex.Completable import io.reactivex.Completable
import org.koin.android.ext.android.inject
import org.koin.androidx.viewmodel.ext.android.viewModel import org.koin.androidx.viewmodel.ext.android.viewModel
import java.io.File import java.io.File
import java.lang.reflect.InvocationHandler import java.lang.reflect.InvocationHandler
...@@ -33,6 +33,7 @@ class HomeFragment : BaseFragment<HomeViewModel, FragmentMagiskBinding>(), ...@@ -33,6 +33,7 @@ class HomeFragment : BaseFragment<HomeViewModel, FragmentMagiskBinding>(),
private val magiskRepo: MagiskRepository by inject() private val magiskRepo: MagiskRepository by inject()
private val EXT_APK by lazy { File("${activity.filesDir.parent}/snet", "snet.jar") } private val EXT_APK by lazy { File("${activity.filesDir.parent}/snet", "snet.jar") }
private val EXT_DEX by lazy { File(EXT_APK.parent, "snet.dex") }
override fun onResponse(responseCode: Int) = viewModel.finishSafetyNetCheck(responseCode) override fun onResponse(responseCode: Int) = viewModel.finishSafetyNetCheck(responseCode)
...@@ -94,7 +95,7 @@ class HomeFragment : BaseFragment<HomeViewModel, FragmentMagiskBinding>(), ...@@ -94,7 +95,7 @@ class HomeFragment : BaseFragment<HomeViewModel, FragmentMagiskBinding>(),
private fun updateSafetyNet(dieOnError: Boolean) { private fun updateSafetyNet(dieOnError: Boolean) {
Completable.fromAction { Completable.fromAction {
val loader = DynamicClassLoader(EXT_APK) val loader = DynamicClassLoader(EXT_APK)
val dex = DexFile.loadDex(EXT_APK.path, EXT_APK.parent, 0) val dex = DexFile.loadDex(EXT_APK.path, EXT_DEX.path, 0)
// Scan through the dex and find our helper class // Scan through the dex and find our helper class
var helperClass: Class<*>? = null var helperClass: Class<*>? = null
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment