Browse Source

UI提示结果

alex 1 year ago
parent
commit
bef4c889a1

+ 33 - 22
app/src/main/java/com/eastpolar/hookcli/MainActivity.kt

@@ -1,5 +1,6 @@
 package com.eastpolar.hookcli
 
+import android.annotation.SuppressLint
 import android.os.Bundle
 import androidx.activity.ComponentActivity
 import androidx.activity.compose.setContent
@@ -12,40 +13,50 @@ import androidx.compose.ui.Modifier
 import androidx.compose.ui.tooling.preview.Preview
 import com.eastpolar.hookcli.tools.AutoCopySO
 import com.eastpolar.hookcli.ui.theme.HookCliTheme
+import java.text.SimpleDateFormat
+import java.util.Date
 
 //注入的应用包名
 private val INJECT_PACKAGE_NAME = "com.rbigkic.yyydsj"
 
 class MainActivity : ComponentActivity() {
+    @SuppressLint("SimpleDateFormat")
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
-        setContent {
-            HookCliTheme {
-                // A surface container using the 'background' color from the theme
-                Surface(
-                    modifier = Modifier.fillMaxSize(),
-                    color = MaterialTheme.colorScheme.background
-                ) {
-                    Greeting("Android")
+        val copySoFileResult = AutoCopySO.instance.copySoFile(this, INJECT_PACKAGE_NAME)
+        if (copySoFileResult.isNotEmpty()) {
+            //通过Composable,设置到TextView上
+            setContent {
+                HookCliTheme {
+                    // A surface container using the 'background' color from the theme
+                    Surface(
+                        modifier = Modifier.fillMaxSize(),
+                        color = MaterialTheme.colorScheme.background
+                    ) {
+                        Greeting(
+                            "$copySoFileResult\n包名:$INJECT_PACKAGE_NAME\n" +
+                                    "${SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Date())}"
+                        )
+                    }
                 }
+
             }
         }
-        AutoCopySO.instance.copySoFile(this, INJECT_PACKAGE_NAME)
     }
-}
 
-@Composable
-fun Greeting(name: String, modifier: Modifier = Modifier) {
-    Text(
-        text = "Hello $name!",
-        modifier = modifier
-    )
-}
+    @Composable
+    fun Greeting(name: String, modifier: Modifier = Modifier) {
+        Text(
+            text = "Hello $name!",
+            modifier = modifier
+        )
+    }
 
-@Preview(showBackground = true)
-@Composable
-fun GreetingPreview() {
-    HookCliTheme {
-        Greeting("Android")
+    @Preview(showBackground = true)
+    @Composable
+    fun GreetingPreview() {
+        HookCliTheme {
+            Greeting("Android")
+        }
     }
 }

+ 6 - 2
app/src/main/java/com/eastpolar/hookcli/tools/AutoCopySO.kt

@@ -18,8 +18,8 @@ class AutoCopySO {
 
     private external fun logHello();
 
-    //将本应用的对应版本so文件拷贝到目标目录下
-    fun copySoFile(context: Context, targetPackage: String,type: ArmType = ArmType.ARM64V8A) {
+    //将本应用的对应版本so文件注入so到目标目录下
+    fun copySoFile(context: Context, targetPackage: String,type: ArmType = ArmType.ARM64V8A): String {
         logHello()
 
         // 获取应用的私有文件目录
@@ -83,9 +83,11 @@ class AutoCopySO {
             if (process.exitValue() == 0) {
                 // 成功复制
                 println("Copy successful")
+                return "注入so成功";
             } else {
                 // 复制失败
                 println("Copy failed")
+                return "注入so失败";
             }
         } catch (e: IOException) {
             Toast.makeText(context, "没有su权限", Toast.LENGTH_SHORT).show()
@@ -93,6 +95,8 @@ class AutoCopySO {
         } catch (e: InterruptedException) {
             e.printStackTrace()
         }
+        
+        return "注入so失败";
     }
 
     private fun readStream(inputStream: InputStream): String {