mirror of
https://github.com/topjohnwu/Magisk.git
synced 2025-08-19 09:11:38 +00:00
Download snet package without legacy impl
This commit is contained in:
@@ -67,8 +67,6 @@ object Const {
|
|||||||
const val XDA_THREAD = "http://forum.xda-developers.com/showthread.php?t=3432382"
|
const val XDA_THREAD = "http://forum.xda-developers.com/showthread.php?t=3432382"
|
||||||
const val SOURCE_CODE_URL = "https://github.com/topjohnwu/Magisk"
|
const val SOURCE_CODE_URL = "https://github.com/topjohnwu/Magisk"
|
||||||
@JvmField
|
@JvmField
|
||||||
val SNET_URL = getRaw("b66b1a914978e5f4c4bbfd74a59f4ad371bac107", "snet.apk")
|
|
||||||
@JvmField
|
|
||||||
val BOOTCTL_URL = getRaw("9c5dfc1b8245c0b5b524901ef0ff0f8335757b77", "bootctl")
|
val BOOTCTL_URL = getRaw("9c5dfc1b8245c0b5b524901ef0ff0f8335757b77", "bootctl")
|
||||||
const val GITHUB_RAW_API_URL = "https://raw.githubusercontent.com/"
|
const val GITHUB_RAW_API_URL = "https://raw.githubusercontent.com/"
|
||||||
|
|
||||||
|
@@ -37,9 +37,7 @@ class MagiskRepository(
|
|||||||
.flatMap { apiRaw.fetchFile(it.uninstaller.link) }
|
.flatMap { apiRaw.fetchFile(it.uninstaller.link) }
|
||||||
.map { it.writeToFile(context, FILE_UNINSTALLER_ZIP) }
|
.map { it.writeToFile(context, FILE_UNINSTALLER_ZIP) }
|
||||||
|
|
||||||
fun fetchSafetynet() = apiRaw
|
fun fetchSafetynet() = apiRaw.fetchSafetynet()
|
||||||
.fetchSafetynet()
|
|
||||||
.map { it.writeToFile(context, FILE_SAFETY_NET_APK) }
|
|
||||||
|
|
||||||
fun fetchBootctl() = apiRaw
|
fun fetchBootctl() = apiRaw
|
||||||
.fetchBootctl()
|
.fetchBootctl()
|
||||||
|
@@ -1,16 +1,20 @@
|
|||||||
package com.topjohnwu.magisk.ui.home
|
package com.topjohnwu.magisk.ui.home
|
||||||
|
|
||||||
import android.app.Activity
|
import android.app.Activity
|
||||||
|
import android.os.Bundle
|
||||||
|
import com.skoumal.teanity.extensions.subscribeK
|
||||||
import com.skoumal.teanity.viewevents.ViewEvent
|
import com.skoumal.teanity.viewevents.ViewEvent
|
||||||
import com.topjohnwu.magisk.*
|
import com.topjohnwu.magisk.*
|
||||||
|
import com.topjohnwu.magisk.data.repository.MagiskRepository
|
||||||
import com.topjohnwu.magisk.databinding.FragmentMagiskBinding
|
import com.topjohnwu.magisk.databinding.FragmentMagiskBinding
|
||||||
import com.topjohnwu.magisk.model.events.*
|
import com.topjohnwu.magisk.model.events.*
|
||||||
import com.topjohnwu.magisk.ui.base.MagiskActivity
|
import com.topjohnwu.magisk.ui.base.MagiskActivity
|
||||||
import com.topjohnwu.magisk.ui.base.MagiskFragment
|
import com.topjohnwu.magisk.ui.base.MagiskFragment
|
||||||
import com.topjohnwu.magisk.utils.ISafetyNetHelper
|
import com.topjohnwu.magisk.utils.ISafetyNetHelper
|
||||||
|
import com.topjohnwu.magisk.utils.copyTo
|
||||||
|
import com.topjohnwu.magisk.utils.inject
|
||||||
import com.topjohnwu.magisk.view.MarkDownWindow
|
import com.topjohnwu.magisk.view.MarkDownWindow
|
||||||
import com.topjohnwu.magisk.view.dialogs.*
|
import com.topjohnwu.magisk.view.dialogs.*
|
||||||
import com.topjohnwu.net.Networking
|
|
||||||
import com.topjohnwu.superuser.Shell
|
import com.topjohnwu.superuser.Shell
|
||||||
import dalvik.system.DexClassLoader
|
import dalvik.system.DexClassLoader
|
||||||
import org.koin.androidx.viewmodel.ext.android.viewModel
|
import org.koin.androidx.viewmodel.ext.android.viewModel
|
||||||
@@ -21,6 +25,8 @@ class HomeFragment : MagiskFragment<HomeViewModel, FragmentMagiskBinding>(),
|
|||||||
|
|
||||||
override val layoutRes: Int = R.layout.fragment_magisk
|
override val layoutRes: Int = R.layout.fragment_magisk
|
||||||
override val viewModel: HomeViewModel by viewModel()
|
override val viewModel: HomeViewModel by viewModel()
|
||||||
|
val magiskRepo: MagiskRepository by inject()
|
||||||
|
lateinit var EXT_FILE: File
|
||||||
|
|
||||||
override fun onResponse(responseCode: Int) = viewModel.finishSafetyNetCheck(responseCode)
|
override fun onResponse(responseCode: Int) = viewModel.finishSafetyNetCheck(responseCode)
|
||||||
|
|
||||||
@@ -37,6 +43,11 @@ class HomeFragment : MagiskFragment<HomeViewModel, FragmentMagiskBinding>(),
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
|
super.onCreate(savedInstanceState)
|
||||||
|
EXT_FILE = File("${requireActivity().filesDir.parent}/snet", "snet.apk")
|
||||||
|
}
|
||||||
|
|
||||||
override fun onStart() {
|
override fun onStart() {
|
||||||
super.onStart()
|
super.onStart()
|
||||||
setHasOptionsMenu(true)
|
setHasOptionsMenu(true)
|
||||||
@@ -61,9 +72,9 @@ class HomeFragment : MagiskFragment<HomeViewModel, FragmentMagiskBinding>(),
|
|||||||
.show(requireActivity(), null, resources.openRawResource(R.raw.changelog))
|
.show(requireActivity(), null, resources.openRawResource(R.raw.changelog))
|
||||||
|
|
||||||
private fun downloadSafetyNet(requiresUserInput: Boolean = true) {
|
private fun downloadSafetyNet(requiresUserInput: Boolean = true) {
|
||||||
fun download() = Networking
|
fun download() = magiskRepo.fetchSafetynet()
|
||||||
.get(Const.Url.SNET_URL)
|
.map { it.byteStream().copyTo(EXT_FILE) }
|
||||||
.getAsFile(EXT_APK) { updateSafetyNet(true) }
|
.subscribeK { updateSafetyNet(true) }
|
||||||
|
|
||||||
if (!requiresUserInput) {
|
if (!requiresUserInput) {
|
||||||
download()
|
download()
|
||||||
|
Reference in New Issue
Block a user