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:
Mmanager/src/main/AndroidManifest.xml | 2+-
Dmanager/src/main/kotlin/me/rhunk/snapenhance/manager/MainActivity.kt | 110-------------------------------------------------------------------------------
Mmanager/src/main/kotlin/me/rhunk/snapenhance/manager/lspatch/LSPatch.kt | 1-
Amanager/src/main/kotlin/me/rhunk/snapenhance/manager/ui/MainActivity.kt | 112+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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