Skip to content

Commit a72eccd

Browse files
committed
1.show error log message(full StackTrace print in console)
2.fix bug
1 parent e8050fc commit a72eccd

File tree

5 files changed

+31
-13
lines changed

5 files changed

+31
-13
lines changed

common/src/commonMain/kotlin/cn/kaicity/common/repository/ApkObf.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,14 @@ object ApkObf {
88

99
suspend fun run(inputBean: InputBean, logCallback: (log: String) -> Unit) {
1010
val workDir = File(File(inputBean.output).parentFile, "temp")
11+
val targetApk = File(inputBean.output)
1112
try {
1213
val originApk = File(inputBean.input)
1314
if (!originApk.exists()) {
1415
logCallback.invoke("Apk not Exists")
1516
return
1617
}
1718

18-
val targetApk = File(inputBean.output)
1919
if (targetApk.exists()) {
2020
targetApk.delete()
2121
}
@@ -38,9 +38,13 @@ object ApkObf {
3838

3939
zip(workDir.absolutePath, originApk, targetApk)
4040

41+
logCallback.invoke("Please Sign APK!!!")
42+
4143
} catch (e: Exception) {
44+
e.printStackTrace()
4245
logCallback.invoke("Error!!!")
4346
logCallback.invoke(e.message.toString())
47+
targetApk.delete()
4448
} finally {
4549
removeFile(workDir)
4650
}

common/src/commonMain/kotlin/cn/kaicity/common/repository/DexObf.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,6 @@ object DexObf {
3535
flow {
3636
obfuscatorImpl = IObfuscator(this)
3737
obfuscatorImpl?.doObfuscator(params.toTypedArray())
38-
}.catch {
39-
logCallback.invoke("Error")
4038
}.onCompletion {
4139
filterFile.delete()
4240
logCallback.invoke("Finish")

common/src/commonMain/kotlin/cn/kaicity/common/widget/MainView.kt

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,9 @@ fun MainView(modifier: Modifier, btnClick: (InputBean) -> Unit) {
5252
trailingIcon = {
5353
Icon(Icons.Default.Search, "Menu", modifier = Modifier.clickable {
5454
chooseFile {
55-
input = it
55+
if(it.isNotEmpty()){
56+
input = it
57+
}
5658
}
5759
})
5860
},
@@ -72,7 +74,9 @@ fun MainView(modifier: Modifier, btnClick: (InputBean) -> Unit) {
7274
}, trailingIcon = {
7375
Icon(Icons.Default.Search, "Menu", modifier = Modifier.clickable {
7476
saveFile {
75-
output = it
77+
if(it.isNotEmpty()){
78+
output = it
79+
}
7680
}
7781
})
7882
},

common/src/desktopMain/kotlin/cn/kaicity/common/DesktopApp.kt

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package cn.kaicity.common
22

33
import androidx.compose.desktop.ui.tooling.preview.Preview
4+
import androidx.compose.foundation.background
45
import androidx.compose.foundation.layout.Row
56
import androidx.compose.foundation.layout.fillMaxWidth
67
import androidx.compose.runtime.Composable
@@ -9,6 +10,7 @@ import androidx.compose.runtime.mutableStateOf
910
import androidx.compose.runtime.remember
1011
import androidx.compose.runtime.setValue
1112
import androidx.compose.ui.Modifier
13+
import androidx.compose.ui.graphics.Color
1214
import cn.kaicity.common.bean.InputBean
1315
import cn.kaicity.common.repository.ApkObf
1416
import cn.kaicity.common.repository.DexObf
@@ -35,7 +37,7 @@ fun AppMain() {
3537
log = "$log\n$it"
3638
}
3739

38-
Row(modifier = Modifier.fillMaxWidth()) {
40+
Row(modifier = Modifier.fillMaxWidth().background(Color.White)) {
3941
MainView(modifier = Modifier.weight(0.5F)) {
4042
if (it.input.endsWith(".dex")) {
4143
log = "Start Obfuscator Dex"
@@ -54,14 +56,20 @@ fun AppMain() {
5456

5557

5658
private fun obfDex(inputBean: InputBean, logCallback: (log: String) -> Unit) {
57-
GlobalScope.launch(Dispatchers.IO){
58-
DexObf.run(inputBean,logCallback)
59+
GlobalScope.launch(Dispatchers.IO) {
60+
try {
61+
62+
DexObf.run(inputBean, logCallback)
63+
} catch (e: Throwable) {
64+
e.printStackTrace()
65+
logCallback.invoke("Obfuscator Dex Fail")
66+
logCallback.invoke(e.message ?: "")
67+
}
5968
}
6069
}
6170

6271
private fun obfApk(inputBean: InputBean, logCallback: (log: String) -> Unit) {
63-
GlobalScope.launch(Dispatchers.IO){
64-
ApkObf.run(inputBean,logCallback)
65-
logCallback.invoke("Please Sign APK!!!")
72+
GlobalScope.launch(Dispatchers.IO) {
73+
ApkObf.run(inputBean, logCallback)
6674
}
6775
}

common/src/desktopMain/kotlin/cn/kaicity/common/platform/IObfuscator.kt

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@ package cn.kaicity.common.platform
22

33
import kotlinx.coroutines.flow.FlowCollector
44
import java.io.BufferedReader
5+
import java.io.File
56
import java.io.InputStreamReader
67
import java.nio.charset.Charset
8+
import java.util.concurrent.TimeUnit
79

810

911
actual class IObfuscator actual constructor(private var flow: FlowCollector<String>) {
@@ -14,11 +16,13 @@ actual class IObfuscator actual constructor(private var flow: FlowCollector<Stri
1416
val param = args.joinToString(" ")
1517

1618
val rawPath = "./dex-tools/black-obfuscator"
19+
val absolutePath = File(rawPath).absolutePath
20+
println(absolutePath)
1721

1822
val shell = if (os.contains("windows")) {
19-
"$rawPath.bat d2j-black-obfuscator $param \n"
23+
"$absolutePath.bat d2j-black-obfuscator $param \n"
2024
} else {
21-
"$rawPath.sh d2j-black-obfuscator $param \n"
25+
"$absolutePath.sh d2j-black-obfuscator $param \n"
2226
}
2327

2428
val process = Runtime.getRuntime().exec(shell)

0 commit comments

Comments
 (0)