commit 8aa2e572272d1fe40605bcfaa2624904a2b0d0cd
parent 2fcc16b77a2239df927392bcc098b7c434fd6940
Author: rhunk <101876869+rhunk@users.noreply.github.com>
Date: Sun, 22 Oct 2023 18:33:43 +0200
refactor(lspatch): move package
Diffstat:
4 files changed, 113 insertions(+), 112 deletions(-)
diff --git a/manager/src/main/AndroidManifest.xml b/manager/src/main/AndroidManifest.xml
@@ -10,7 +10,7 @@
<application
android:label="SE Manager"
android:icon="@android:drawable/ic_input_add">
- <activity android:name=".MainActivity" android:exported="true">
+ <activity android:name=".ui.MainActivity" android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
diff --git a/manager/src/main/kotlin/me/rhunk/snapenhance/manager/MainActivity.kt b/manager/src/main/kotlin/me/rhunk/snapenhance/manager/MainActivity.kt
@@ -1,109 +0,0 @@
-package me.rhunk.snapenhance.manager
-
-import android.os.Build
-import android.os.Bundle
-import androidx.activity.ComponentActivity
-import androidx.activity.compose.setContent
-import androidx.compose.foundation.border
-import androidx.compose.foundation.isSystemInDarkTheme
-import androidx.compose.foundation.layout.Arrangement
-import androidx.compose.foundation.layout.Column
-import androidx.compose.foundation.layout.fillMaxWidth
-import androidx.compose.foundation.layout.height
-import androidx.compose.foundation.layout.padding
-import androidx.compose.foundation.lazy.LazyColumn
-import androidx.compose.foundation.lazy.items
-import androidx.compose.foundation.lazy.rememberLazyListState
-import androidx.compose.material3.Button
-import androidx.compose.material3.MaterialTheme
-import androidx.compose.material3.Text
-import androidx.compose.material3.dynamicDarkColorScheme
-import androidx.compose.material3.dynamicLightColorScheme
-import androidx.compose.runtime.LaunchedEffect
-import androidx.compose.runtime.mutableStateListOf
-import androidx.compose.runtime.remember
-import androidx.compose.runtime.rememberCoroutineScope
-import androidx.compose.ui.Alignment
-import androidx.compose.ui.Modifier
-import androidx.compose.ui.graphics.Color
-import androidx.compose.ui.platform.LocalContext
-import androidx.compose.ui.unit.dp
-import kotlinx.coroutines.Dispatchers
-import kotlinx.coroutines.launch
-import me.rhunk.snapenhance.manager.lspatch.LSPatch
-import java.io.File
-import java.io.PrintWriter
-import java.io.StringWriter
-
-class MainActivity : ComponentActivity() {
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
-
- setContent {
- val coroutineScope = rememberCoroutineScope()
- MaterialTheme(
- colorScheme = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
- if (isSystemInDarkTheme()) dynamicDarkColorScheme(LocalContext.current)
- else dynamicLightColorScheme(LocalContext.current)
- } else MaterialTheme.colorScheme
- ) {
- val context = LocalContext.current
- val logs = remember { mutableStateListOf<String>() }
- fun printLog(data: Any) {
- when (data) {
- is Throwable -> {
- logs += data.message.toString()
- logs += StringWriter().apply {
- data.printStackTrace(PrintWriter(this))
- }.toString()
- }
- else -> logs += data.toString()
- }
- }
-
- val scrollState = rememberLazyListState(0)
-
- Column(
- horizontalAlignment = Alignment.CenterHorizontally,
- verticalArrangement = Arrangement.spacedBy(20.dp),
- modifier = Modifier.padding(10.dp)
- ) {
- Text(text = "SE Manager")
-
- Button(onClick = {
- coroutineScope.launch(Dispatchers.IO) {
- runCatching {
- val lspatch = LSPatch(
- context,
- mapOf(
- BuildConfig.APPLICATION_ID to File(context.packageManager.getPackageInfo(BuildConfig.APPLICATION_ID, 0).applicationInfo.sourceDir)
- )
- ) { printLog(it) }
- lspatch.patch(
- File(context.packageManager.getPackageInfo("com.snapchat.android", 0).applicationInfo.sourceDir),
- File(context.filesDir, "patched.apk")
- )
- }.onFailure { printLog(it) }
- }
- }) {
- Text(text = "Test patch apk")
- }
-
- LazyColumn(
- state = scrollState,
- modifier = Modifier.fillMaxWidth().padding(5.dp).height(500.dp).border(1.dp, color = Color.Black),
- content = {
- items(logs) {
- Text(text = it, modifier = Modifier.padding(2.dp))
- }
- }
- )
-
- LaunchedEffect(logs.size) {
- scrollState.scrollToItem((logs.size - 1).coerceAtLeast(0))
- }
- }
- }
- }
- }
-}-
\ No newline at end of file
diff --git a/manager/src/main/kotlin/me/rhunk/snapenhance/manager/lspatch/LSPatch.kt b/manager/src/main/kotlin/me/rhunk/snapenhance/manager/lspatch/LSPatch.kt
@@ -111,7 +111,6 @@ class LSPatch(
dstZFile.add("assets/lspatch/so/$native/liblspatch.so", context.assets.open("lspatch/so/$native/liblspatch.so"), false)
}
-
//embed modules
printLog("embedding modules")
modules.forEach { (packageName, module) ->
diff --git a/manager/src/main/kotlin/me/rhunk/snapenhance/manager/ui/MainActivity.kt b/manager/src/main/kotlin/me/rhunk/snapenhance/manager/ui/MainActivity.kt
@@ -0,0 +1,111 @@
+package me.rhunk.snapenhance.manager.ui
+
+import android.os.Build
+import android.os.Bundle
+import androidx.activity.ComponentActivity
+import androidx.activity.compose.setContent
+import androidx.compose.foundation.border
+import androidx.compose.foundation.isSystemInDarkTheme
+import androidx.compose.foundation.layout.Arrangement
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.height
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.lazy.LazyColumn
+import androidx.compose.foundation.lazy.items
+import androidx.compose.foundation.lazy.rememberLazyListState
+import androidx.compose.material3.Button
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.Text
+import androidx.compose.material3.dynamicDarkColorScheme
+import androidx.compose.material3.dynamicLightColorScheme
+import androidx.compose.runtime.LaunchedEffect
+import androidx.compose.runtime.mutableStateListOf
+import androidx.compose.runtime.remember
+import androidx.compose.runtime.rememberCoroutineScope
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.platform.LocalContext
+import androidx.compose.ui.unit.dp
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
+import me.rhunk.snapenhance.manager.BuildConfig
+import me.rhunk.snapenhance.manager.lspatch.LSPatch
+import java.io.File
+import java.io.PrintWriter
+import java.io.StringWriter
+
+class MainActivity : ComponentActivity() {
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+
+ setContent {
+ val coroutineScope = rememberCoroutineScope()
+ MaterialTheme(
+ colorScheme = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
+ if (isSystemInDarkTheme()) dynamicDarkColorScheme(LocalContext.current)
+ else dynamicLightColorScheme(LocalContext.current)
+ } else MaterialTheme.colorScheme
+ ) {
+ val context = LocalContext.current
+ val logs = remember { mutableStateListOf<String>() }
+ fun printLog(data: Any) {
+ when (data) {
+ is Throwable -> {
+ logs += data.message.toString()
+ logs += StringWriter().apply {
+ data.printStackTrace(PrintWriter(this))
+ }.toString()
+ }
+ else -> logs += data.toString()
+ }
+ }
+
+ val scrollState = rememberLazyListState(0)
+
+ Column(
+ horizontalAlignment = Alignment.CenterHorizontally,
+ verticalArrangement = Arrangement.spacedBy(20.dp),
+ modifier = Modifier.padding(10.dp)
+ ) {
+ Text(text = "SE Manager")
+
+ Button(onClick = {
+ coroutineScope.launch(Dispatchers.IO) {
+ runCatching {
+ val lspatch = LSPatch(
+ context,
+ mapOf(
+ BuildConfig.APPLICATION_ID to File(context.packageManager.getPackageInfo(
+ BuildConfig.APPLICATION_ID, 0).applicationInfo.sourceDir)
+ )
+ ) { printLog(it) }
+ lspatch.patch(
+ File(context.packageManager.getPackageInfo("com.snapchat.android", 0).applicationInfo.sourceDir),
+ File(context.filesDir, "patched.apk")
+ )
+ }.onFailure { printLog(it) }
+ }
+ }) {
+ Text(text = "Test patch apk")
+ }
+
+ LazyColumn(
+ state = scrollState,
+ modifier = Modifier.fillMaxWidth().padding(5.dp).height(500.dp).border(1.dp, color = Color.Black),
+ content = {
+ items(logs) {
+ Text(text = it, modifier = Modifier.padding(2.dp))
+ }
+ }
+ )
+
+ LaunchedEffect(logs.size) {
+ scrollState.scrollToItem((logs.size - 1).coerceAtLeast(0))
+ }
+ }
+ }
+ }
+ }
+}+
\ No newline at end of file