Commit 171ddab3 authored by topjohnwu's avatar topjohnwu

Reorganize code handling su requests

parent 2aee0b0b
...@@ -10,8 +10,8 @@ data class MagiskPolicy( ...@@ -10,8 +10,8 @@ data class MagiskPolicy(
val uid: Int, val uid: Int,
val packageName: String, val packageName: String,
val appName: String, val appName: String,
val policy: Int = INTERACTIVE, var policy: Int = INTERACTIVE,
val until: Long = -1L, var until: Long = -1L,
val logging: Boolean = true, val logging: Boolean = true,
val notification: Boolean = true, val notification: Boolean = true,
val applicationInfo: ApplicationInfo val applicationInfo: ApplicationInfo
......
...@@ -8,7 +8,6 @@ import android.view.Window ...@@ -8,7 +8,6 @@ import android.view.Window
import com.topjohnwu.magisk.R import com.topjohnwu.magisk.R
import com.topjohnwu.magisk.base.BaseActivity import com.topjohnwu.magisk.base.BaseActivity
import com.topjohnwu.magisk.databinding.ActivityRequestBinding import com.topjohnwu.magisk.databinding.ActivityRequestBinding
import com.topjohnwu.magisk.model.entity.MagiskPolicy
import com.topjohnwu.magisk.model.events.DieEvent import com.topjohnwu.magisk.model.events.DieEvent
import com.topjohnwu.magisk.model.events.ViewEvent import com.topjohnwu.magisk.model.events.ViewEvent
import com.topjohnwu.magisk.utils.SuHandler import com.topjohnwu.magisk.utils.SuHandler
...@@ -22,7 +21,7 @@ open class SuRequestActivity : BaseActivity<SuRequestViewModel, ActivityRequestB ...@@ -22,7 +21,7 @@ open class SuRequestActivity : BaseActivity<SuRequestViewModel, ActivityRequestB
override val viewModel: SuRequestViewModel by viewModel() override val viewModel: SuRequestViewModel by viewModel()
override fun onBackPressed() { override fun onBackPressed() {
viewModel.handler?.handleAction(MagiskPolicy.DENY, -1) viewModel.denyPressed()
} }
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
......
...@@ -2,11 +2,9 @@ package com.topjohnwu.magisk.utils ...@@ -2,11 +2,9 @@ package com.topjohnwu.magisk.utils
import android.net.LocalSocket import android.net.LocalSocket
import android.net.LocalSocketAddress import android.net.LocalSocketAddress
import android.os.Bundle import androidx.collection.ArrayMap
import android.text.TextUtils
import timber.log.Timber import timber.log.Timber
import java.io.* import java.io.*
import java.nio.charset.Charset
abstract class SuConnector @Throws(IOException::class) abstract class SuConnector @Throws(IOException::class)
protected constructor(name: String) { protected constructor(name: String) {
...@@ -21,24 +19,23 @@ protected constructor(name: String) { ...@@ -21,24 +19,23 @@ protected constructor(name: String) {
input = DataInputStream(BufferedInputStream(socket.inputStream)) input = DataInputStream(BufferedInputStream(socket.inputStream))
} }
@Throws(IOException::class)
private fun readString(): String { private fun readString(): String {
val len = input.readInt() val len = input.readInt()
val buf = ByteArray(len) val buf = ByteArray(len)
input.readFully(buf) input.readFully(buf)
return String(buf, Charset.forName("UTF-8")) return String(buf, Charsets.UTF_8)
} }
@Throws(IOException::class) @Throws(IOException::class)
fun readSocketInput(): Bundle { fun readRequest(): Map<String, String> {
val bundle = Bundle() val ret = ArrayMap<String, String>()
while (true) { while (true) {
val name = readString() val name = readString()
if (TextUtils.equals(name, "eof")) if (name == "eof")
break break
bundle.putString(name, readString()) ret[name] = readString()
} }
return bundle return ret
} }
fun response() { fun response() {
......
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