From 940929a50be837f00832cce7d687ec4e4c54da8d Mon Sep 17 00:00:00 2001 From: Administrator Date: Wed, 6 Aug 2025 14:43:32 +0800 Subject: [PATCH] =?UTF-8?q?=E7=95=99=E5=AD=98=E6=96=87=E4=BB=B6=E6=81=A2?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/android/grape/job/OpenAppService.kt | 7 - .../android/grape/manager/ConfigManager.kt | 2 - .../java/com/android/grape/net/AfClient.kt | 101 ---------- .../java/com/android/grape/util/AppUtils.kt | 14 +- .../com/android/grape/util/BackupUtils.kt | 13 +- .../java/com/android/grape/util/FileUtils.kt | 38 ++-- .../java/com/android/grape/util/JsonUtils.kt | 186 +----------------- .../java/com/android/grape/util/ShellUtils.kt | 2 +- .../java/com/android/grape/util/TaskUtils.kt | 69 ++----- 9 files changed, 51 insertions(+), 381 deletions(-) diff --git a/app/src/main/java/com/android/grape/job/OpenAppService.kt b/app/src/main/java/com/android/grape/job/OpenAppService.kt index a9e668b..76b8f51 100644 --- a/app/src/main/java/com/android/grape/job/OpenAppService.kt +++ b/app/src/main/java/com/android/grape/job/OpenAppService.kt @@ -24,13 +24,6 @@ class OpenAppService : JobIntentService() { override fun onHandleWork(intent: Intent) { println("IOSTQ:isCanAuto() == " + isCanAuto) println("IOSTQ:getCanAutoLc() == " + canAutoLc) - recordPackageName?.let { - ServiceUtils.setEnableApp(it, true) - } - ServiceUtils.setEnableApp("org.mozilla.firefox", true) - ServiceUtils.setEnableApp("com.google.android.webview", true) - ServiceUtils.setEnableApp("com.android.chrome", true) - ServiceUtils.setEnableApp("com.UCMobile", true) try { ChangeDeviceInfoUtil.changeDevice(callBack = object : ChangeCallBack { override fun changeSuccess() { diff --git a/app/src/main/java/com/android/grape/manager/ConfigManager.kt b/app/src/main/java/com/android/grape/manager/ConfigManager.kt index 0430ae6..42cb233 100644 --- a/app/src/main/java/com/android/grape/manager/ConfigManager.kt +++ b/app/src/main/java/com/android/grape/manager/ConfigManager.kt @@ -35,7 +35,6 @@ import com.android.grape.data.AppState.isNeedRestored import com.android.grape.data.AppState.keepOpen import com.android.grape.data.AppState.lang import com.android.grape.data.AppState.logBuffer -import com.android.grape.data.AppState.paramsJson import com.android.grape.data.AppState.proxyCountry import com.android.grape.data.AppState.proxyIp import com.android.grape.data.AppState.proxyPort @@ -93,7 +92,6 @@ object ConfigManager { isNeedRestored = false taskJson = null installRet = false - paramsJson = null recordPackageName = null recordFileName = null recordExtraFileName = null diff --git a/app/src/main/java/com/android/grape/net/AfClient.kt b/app/src/main/java/com/android/grape/net/AfClient.kt index e963849..38fadc0 100644 --- a/app/src/main/java/com/android/grape/net/AfClient.kt +++ b/app/src/main/java/com/android/grape/net/AfClient.kt @@ -1,23 +1,7 @@ package com.android.grape.net -import android.content.Context import android.util.Log -import com.android.grape.data.AppState -import com.android.grape.data.AppState.clickServerTimeFromGP -import com.android.grape.data.AppState.clickTime -import com.android.grape.data.AppState.instalTimeFromGp -import com.android.grape.data.AppState.installTime -import com.android.grape.data.AppState.lastUpdateTime -import com.android.grape.data.AppState.paramsJson -import com.android.grape.data.AppState.recordPackageName -import com.android.grape.data.AppState.referer -import com.android.grape.data.AppState.taskJson -import com.android.grape.manager.TrackingManager.genInstallTimeFromGP -import com.android.grape.util.DeviceUtils.getGoogleAdId import com.android.grape.util.FileUtils -import com.android.grape.util.ServiceUtils -import com.android.grape.util.TaskUtils -import com.blankj.utilcode.util.LogUtils import java.io.BufferedInputStream import java.io.ByteArrayOutputStream import java.io.File @@ -28,7 +12,6 @@ import java.io.OutputStream import java.io.UnsupportedEncodingException import java.net.HttpURLConnection import java.net.URL -import java.net.URLDecoder /** * @Time: 2025-07-16 16:07 @@ -39,90 +22,6 @@ import java.net.URLDecoder */ object AfClient { - @Throws(IOException::class) - fun setInfo(context: Context): Boolean { - val url = "http://127.0.0.1:8090/ctl/setinfo" - - //安装时间 - try { - clickTime = taskJson!!.getLong("clickTime") - val deviceJo = paramsJson!!.getJSONObject("device") - // installTimeFromGP = (long) (clickTime / 1000) + (clickTime % 7) + 3; - installTime = System.currentTimeMillis() - Thread.sleep(2000) - Log.d("IOSTQ:installTime == ", installTime.toString() + "") - Log.d("IOSTQ:clickTime == ", clickTime.toString() + "") - val time = genInstallTimeFromGP(clickTime, installTime) - // installTimeFromGP = firstInstallTime / 1000; - installTime = System.currentTimeMillis() - lastUpdateTime = installTime - LogUtils.d("IOSTQ:lastUpdateTime ", lastUpdateTime.toString() + "") - deviceJo.put("firstInstallTime", installTime) - deviceJo.put("lastUpdateTime", lastUpdateTime) - deviceJo.put("installTimeFromGP", instalTimeFromGp) - val installServerTimeFromGP = time[1] // + (installTimeFromGP % 2) + 1; - deviceJo.put("installServerTimeFromGP", installServerTimeFromGP) - val clickTimeToGp = (clickTime / 1000) - deviceJo.put("clickTimeToGP", clickTimeToGp) - val clickServerTimeToGP = time[0] / 1000 // + (clickTimeToGp % 2) + 1; - deviceJo.put("clickServerTimeToGP", clickServerTimeToGP) - - AppState.installServerTimeFromGP = installServerTimeFromGP - clickServerTimeFromGP = clickServerTimeToGP - - if (taskJson!!.has("clickData")) { - val clickdata = taskJson!!.getJSONObject("clickData") - if (clickdata.has("referer") && clickdata.getString("referer").length > 10) { - referer = clickdata.getString("referer") - } - } else { - referer = "" - } - - if (referer != null && referer!!.length > 10) { - deviceJo.put("referrerFromGP", URLDecoder.decode(referer, "UTF-8")) - } else { - deviceJo.put("referrerFromGP", "utm_source=google-play&utm_medium=organic") - deviceJo.put("clickServerTimeToGP", 0) - deviceJo.put("clickTimeToGP", 0) - deviceJo.put("installTimeFromGP", 0) - deviceJo.put("installServerTimeFromGP", 0) - } - - //JSONObject proxyJo = paramsJson.getJSONObject("proxy"); - //proxyJo.put("forwardIp", Util.getDelegateIp()); - Log.d("IOSTQ", "firstInstalTime == " + installTime) - Log.d("IOSTQ", "paramsJson == " + paramsJson) - val origin_gaid: String = getGoogleAdId(context) ?: "" - deviceJo.put("origin_gaid", origin_gaid) - paramsJson!!.put("device", deviceJo) - val params = paramsJson.toString() - ServiceUtils.setEnableApp(recordPackageName ?: "", true) - ServiceUtils.setEnableApp("org.mozilla.firefox", true) - ServiceUtils.setEnableApp("com.google.android.webview", true) - ServiceUtils.setEnableApp("com.android.chrome", true) - - ServiceUtils.writeFile("/data/system/device.txt", params) - Log.d("IOSTQ:param == ", params) - // paramsJson.put("proxy", proxyJo); - } catch (e: Exception) { - Log.d("IOSTQ", e.message!!) - e.printStackTrace() - } - - // printStr("execSetJson params:"+params); - - // writeFileToSDCard(params); - try { - // String ret = new MyPost().PostData(context, params.getBytes("utf-8"), url); - - // Log.i("TaskUtils", "set info ret : " + ret); - } catch (e: Exception) { - e.printStackTrace() - } - return true - } - fun downloadFile(httpUrl: String, fileName: String): Boolean { Log.i( "AfClient", diff --git a/app/src/main/java/com/android/grape/util/AppUtils.kt b/app/src/main/java/com/android/grape/util/AppUtils.kt index 67136b9..a625df2 100644 --- a/app/src/main/java/com/android/grape/util/AppUtils.kt +++ b/app/src/main/java/com/android/grape/util/AppUtils.kt @@ -222,16 +222,15 @@ object AppUtils { val file = File(getRecordSdcardApkVerFileName(context)) var extraFile: File? = null if (recordExtraFileName?.isNotEmpty() == true) { - extraFile = File(ContextUtils.getRecordExtraFileName(context)) + extraFile = File(getRecordExtraFileName(context)) } - installRet = installApk(context, file, extraFile) && AppUtils.checkAppInstalled( + installRet = installApk(context, file, extraFile) && checkAppInstalled( context, recordPackageName ) if (installRet && !videoProxy.contains("123.56.44.45")) { - //检查是否有新版本 file.delete() extraFile?.delete() } @@ -617,17 +616,12 @@ object AppUtils { ret = downloadFile(extraUrl, getRecordExtraFileName(context)) } if (isNeedRestored) { - println("IOSTQ:开始下载留存文件") + Log.i("AppUtils","IOSTQ:开始下载留存文件") taskJson?.let { if (it.has("BackupFileUrl1") && it.getString("BackupFileUrl1") .isNotEmpty() ) { - var restored_zip = - "http://47.83.1.116/tt/upload/backupddj/" + it.getString("BackupFileUrl1") - if (backUpServerIp.isNotEmpty()) { - restored_zip = - "http://" + backUpServerIp + "/tt/" + it.getString("BackupFileUrl1") - } + var restored_zip = "http://47.83.1.116/tt/" + it.getString("BackupFileUrl1") ret = downloadFile(restored_zip, getRecordDataFileName(context)) } } diff --git a/app/src/main/java/com/android/grape/util/BackupUtils.kt b/app/src/main/java/com/android/grape/util/BackupUtils.kt index e585fc0..d8af0f9 100644 --- a/app/src/main/java/com/android/grape/util/BackupUtils.kt +++ b/app/src/main/java/com/android/grape/util/BackupUtils.kt @@ -56,8 +56,7 @@ object BackupUtils { } try { val zipDirName = getBaseFilesDir(context) + "/" + monitorDir + "/" + packageName - val zipFileName = - getBaseFilesDir(context) + "/" + monitorDir + "/" + packageName + ".zip" + val zipFileName = getBaseFilesDir(context) + "/" + monitorDir + "/" + packageName + ".zip" Log.i( "BackupUtils", "backupDataFile-> zipDirName:$zipDirName ; zipFileName:$zipFileName" @@ -91,6 +90,7 @@ object BackupUtils { getRecordTxtFileName(context) ) chownSh(getMonitorDir(context), uid) + Log.d("TAG", "backupDataFile: ------------------>") val copySucc = FileUtils.copyFolderSh(apkDataPath,zipDirName) Log.i("BackupUtils", "copyFolder($apkDataPath,$zipDirName) = $copySucc") if (copySucc) { @@ -344,8 +344,11 @@ object BackupUtils { if (reloginDataDir == null) { return false } - - unZipFileSh(zipFile, dataDir) + val dataFile = File("$dataDir$recordPackageName") + if (!dataFile.exists()) { + dataFile.mkdir() + } + unZipFileSh(zipFile, dataFile.absolutePath) val userAnGroup = getUserAndGroupSh( context, @@ -355,7 +358,7 @@ object BackupUtils { Log.i("BackupUtils", "recoverRecordData->userAndGroup:$userAnGroup") File(reloginDataDir).parentFile?.absolutePath?.let { copyFolderSh( - "$dataDir/$recordPackageName", + "$dataDir$recordPackageName", it ) } diff --git a/app/src/main/java/com/android/grape/util/FileUtils.kt b/app/src/main/java/com/android/grape/util/FileUtils.kt index 353ef0a..ce49c23 100644 --- a/app/src/main/java/com/android/grape/util/FileUtils.kt +++ b/app/src/main/java/com/android/grape/util/FileUtils.kt @@ -135,17 +135,18 @@ object FileUtils { public fun forceMakeDir(file: File) { if (!file.exists()) { - val parent = file.parentFile - - parent?.exists()?.let { - if (!it) { - MockTools.exec("mkdir $parent") - forceMakeDir(parent) - // file.mkdirs(); - } else { - MockTools.exec("mkdir $file") - } - } + file.mkdirs() +// val parent = file.parentFile +// +// parent?.exists()?.let { +// if (!it) { +// MockTools.exec("mkdir $parent") +// forceMakeDir(parent) +// // file.mkdirs(); +// } else { +// MockTools.exec("mkdir $file") +// } +// } } } @@ -278,8 +279,7 @@ object FileUtils { "start zipSh : $zipDirName ; $zipFileName" ) try { - val zipDir = File(zipDirName) - val cmdString = "tar -zcvf $zipFileName -C ${zipDir.parentFile?.absolutePath ?: ""} ${zipDir.name}" + val cmdString = "tar -zcvf $zipFileName -C $zipDirName ." Log.i("FileUtils", "zipSh-> cmd:$cmdString") MockTools.exec(cmdString) } catch (e: Exception) { @@ -575,7 +575,7 @@ object FileUtils { fun writeAfLog() { val filePath = "/data/data/${recordPackageName}/log.txt" - ShellUtils.execRootCmdAndGetResult("chmod 777 $filePath") + ShellUtil.execRootCmdAndGetResult("chmod 777 $filePath") val afLog = ShellUtil.execRootCmdAndGetResult("cat $filePath") val file = File( Environment.getExternalStorageDirectory(), @@ -610,20 +610,20 @@ object FileUtils { // 构造安全命令 val filePath = "/data/data/$packageName/device.txt" val cmd = "sh -c 'printf %s '\''" + base64Content + "'\'' > " + filePath + "'" - val result = ShellUtils.execRootCmdAndGetResult(cmd) - ShellUtils.execRootCmdAndGetResult("chmod 777 $filePath") + val result = ShellUtil.execRootCmdAndGetResult(cmd) + ShellUtil.execRootCmdAndGetResult("chmod 777 $filePath") } fun runPlugin(packageName: String) { val cmd = "apmt patch add -n ArmCloudAF -p $packageName -f /sdcard/Download/ArmCloudAF_lo.apk" - val result = ShellUtils.execRootCmdAndGetResult(cmd) + val result = ShellUtil.execRootCmdAndGetResult(cmd) LogUtils.d("FileUtils", "runPlugin: $result") } fun deletePlugin() { val cmd = "apmt patch del -n ArmCloudAF" - val result = ShellUtils.execRootCmdAndGetResult(cmd) + val result = ShellUtil.execRootCmdAndGetResult(cmd) LogUtils.d("FileUtils", "deletePlugin: $result") } @@ -708,7 +708,7 @@ object FileUtils { // 构造命令(注意 shell 特殊字符的转义) val safeOldPath = src.absolutePath.replace(" ", "\\ ").replace("\"", "\\\"") val safeNewPath = dst.absolutePath.replace(" ", "\\ ").replace("\"", "\\\"") - val cmd = "cp -r -f \"$safeOldPath\" \"$safeNewPath\"" + val cmd = "cp -r -f \"$safeOldPath\"/* \"$safeNewPath\"" Log.i("TaskUtil", "copyFolderSh cmd: $cmd") diff --git a/app/src/main/java/com/android/grape/util/JsonUtils.kt b/app/src/main/java/com/android/grape/util/JsonUtils.kt index b9e8bf7..2b4acfd 100644 --- a/app/src/main/java/com/android/grape/util/JsonUtils.kt +++ b/app/src/main/java/com/android/grape/util/JsonUtils.kt @@ -5,26 +5,17 @@ import android.util.Log import com.android.grape.data.AppState.appVersion import com.android.grape.data.AppState.appVersionCode import com.android.grape.data.AppState.backUpServerIp -import com.android.grape.data.AppState.cacheJson import com.android.grape.data.AppState.canAutoLc -import com.android.grape.data.AppState.clickServerTimeFromGP -import com.android.grape.data.AppState.clickTime import com.android.grape.data.AppState.ctit -import com.android.grape.data.AppState.defaultPRoxyJo import com.android.grape.data.AppState.forwardIp import com.android.grape.data.AppState.fuzzy_domain import com.android.grape.data.AppState.fuzzy_proxy -import com.android.grape.data.AppState.instalTimeFromGp -import com.android.grape.data.AppState.installServerTimeFromGP -import com.android.grape.data.AppState.installTime import com.android.grape.data.AppState.isCanAuto import com.android.grape.data.AppState.isNeedBackup import com.android.grape.data.AppState.isNeedReg import com.android.grape.data.AppState.isNeedRestored import com.android.grape.data.AppState.keepOpen import com.android.grape.data.AppState.lang -import com.android.grape.data.AppState.lastUpdateTime -import com.android.grape.data.AppState.paramsJson import com.android.grape.data.AppState.preClickRecordId import com.android.grape.data.AppState.proxyCountry import com.android.grape.data.AppState.proxyIp @@ -32,27 +23,15 @@ import com.android.grape.data.AppState.proxyPort import com.android.grape.data.AppState.recordFileName import com.android.grape.data.AppState.recordId import com.android.grape.data.AppState.recordPackageName -import com.android.grape.data.AppState.referer -import com.android.grape.data.AppState.regEmailJson import com.android.grape.data.AppState.reloginRecordId import com.android.grape.data.AppState.scriptOpenApp import com.android.grape.data.AppState.taskJson import com.android.grape.data.AppState.trackingLink import com.android.grape.data.AppState.ua import com.android.grape.data.AppState.videoProxy -import com.android.grape.net.AfClient.postData -import com.android.grape.util.DeviceUtils.getGoogleAdId -import com.android.grape.util.FileUtils.forceMakeDir -import com.android.grape.util.ServiceUtils.WriteFile import com.android.grape.util.TaskUtils.execRecord -import com.android.grape.util.TaskUtils.getReferer import com.android.grape.util.TaskUtils.setFinish import com.android.grape.util.TaskUtils.setRecordExtraFileName -import com.blankj.utilcode.util.LogUtils -import org.json.JSONObject -import java.io.File -import java.io.IOException -import java.net.URLDecoder /** * @Time: 2025-20-16 17:20 @@ -207,165 +186,6 @@ object JsonUtils { } } - /** - * 通过处理任务 JSON 对象并向参数 JSON 对象添加各种属性来初始化操作所需的 JSON 参数。 - * 处理设备、优惠和其他相关数据,以准备完整的 JSON 结构。 - * - * @param context 用于执行各种操作的应用程序上下文,例如在初始化期间写入文件和发送事件。 - * 例如,在初始化期间写入文件和发送事件。 - * @return 如果 JSON 参数初始化成功,则返回 true,否则返回 false - */ - fun initParamsJson(context: Context): Boolean { - paramsJson = JSONObject().apply { - try { - taskJson?.let { - val deviceJo = it.getJSONObject("device") -// LogUtils.d("deviceJo:$deviceJo") - val deviceParamJo: JSONObject = DeviceConvertUtil.MGConvert(deviceJo) - if (it.has("isCollectURL")) { - deviceJo.put("isCollectURL", true) - } else { - deviceJo.put("isCollectURL", false) - } - - if (it.has("regInfo")) { - val regInfo = it.getJSONObject("regInfo") - var apks = File("/sdcard/Download/GoogleAccount.txt") - if (!apks.exists()) { - forceMakeDir(File("/sdcard/Download")) - apks = File("/sdcard/Download/GoogleAccount.txt") - } - WriteFile(apks.toString(), regInfo.toString()) - sendRegEvent(context) - } - - //add 20210409 - val offerJo = it.getJSONObject("offer") - val apkprop = it.getJSONObject("apkProp") - val thirdDetect = offerJo.getString("thirdDetect") - if ("appsflyer".equals(thirdDetect, ignoreCase = true)) { - deviceParamJo.put("afVersion", offerJo.getString("thirdVer")) - } - deviceParamJo.put("installVersionFromGP", offerJo.getString("apkVer")) - - put("device", deviceParamJo) - - if (it.has("expand")) { - put("expand", it.getJSONObject("expand")) - } - put("offer", offerJo) - val proxyJo = defaultPRoxyJo - } - } catch (e: Exception) { - e.printStackTrace() - - Log.i("JsonUtils", "initParamsJson error : " + e.message) - setFinish(context) - return false - } - } - - return true - } - - @Throws(IOException::class) - fun setRrInfo(context: Context): Boolean { - try { - clickTime = taskJson!!.getLong("clickTime") - val deviceJo = paramsJson!!.getJSONObject("device") - - if (isNeedRestored) { - if (cacheJson != null) { - installTime = - cacheJson.getLong("firstInstallTime") - lastUpdateTime = - cacheJson.getLong("lastUpdateTime") - installServerTimeFromGP = - cacheJson.getLong("installServerTimeFromGP") - clickServerTimeFromGP = - cacheJson.getLong("clickServerTimeToGP") - instalTimeFromGp = - cacheJson.getLong("installTimeFromGP") - } - } - - - deviceJo.put("firstInstallTime", installTime) - deviceJo.put("lastUpdateTime", lastUpdateTime) - deviceJo.put("installTimeFromGP", instalTimeFromGp) - val installServerTimeFromGP = installServerTimeFromGP - deviceJo.put("installServerTimeFromGP", installServerTimeFromGP) - val clickTimeToGp = (clickTime / 1000) - deviceJo.put("clickTimeToGP", clickTimeToGp) - val clickServerTimeToGP = clickServerTimeFromGP - deviceJo.put("clickServerTimeToGP", clickServerTimeToGP) - - - if (taskJson!!.has("clickData")) { - val clickdata = taskJson!!.getJSONObject("clickData") - if (clickdata.has("referer")) { - referer = clickdata.getString("referer") - } - } - - if (getReferer() != null) { - deviceJo.put("referrerFromGP", URLDecoder.decode(getReferer(), "UTF-8")) - } else { - deviceJo.put("referrerFromGP", "utm_source=google-play&utm_medium=organic") - deviceJo.put("clickServerTimeToGP", 0) - deviceJo.put("clickTimeToGP", 0) - deviceJo.put("installTimeFromGP", 0) - deviceJo.put("installServerTimeFromGP", 0) - } - - val origin_gaid: String = getGoogleAdId(context) ?: "" - deviceJo.put("origin_gaid", origin_gaid) - paramsJson!!.put("device", deviceJo) - val params = paramsJson.toString() - ServiceUtils.setEnableApp(recordPackageName ?: "", true) - ServiceUtils.setEnableApp("org.mozilla.firefox", true) - ServiceUtils.setEnableApp("com.google.android.webview", true) - ServiceUtils.setEnableApp("com.android.chrome", true) - - ServiceUtils.writeFile("/data/system/device.txt", params) - Log.d("IOSTQ:param == ", params) - return true - // paramsJson.put("proxy", proxyJo); - } catch (e: Exception) { - e.printStackTrace() - } - return false - } - - /** - * 通过向指定的服务器URL提出邮政请求来发送注册事件。 - * - * @param上下文调用该方法的上下文,用于执行网络操作 - * @return True如果已成功处理注册事件;错误,如果操作期间发生错误 - */ - private fun sendRegEvent(context: Context): Boolean { - val url = "http://123.56.44.45/tt/ddj/reg.do?recordId=$recordId" - - Log.i("JsonUtils", "url:$url") - - try { - val ret: String? = postData("".toByteArray(), url) - Log.i("JsonUtils", "ret:$ret") - - val jo = JSONObject(ret ?: "") - - if (jo.getInt("code") == 1) { - regEmailJson = jo.getJSONObject("emailInfo") - } - - return true - } catch (e: Exception) { - e.printStackTrace() - } - - return false - } - /** * 在JSON配置上执行一组操作。它删除了特定的日志文件,处理JSON参数, * 并记录所需的数据。如果例外,它会记录错误并执行清理。 @@ -376,10 +196,8 @@ object JsonUtils { @Throws(Exception::class) fun execSetJson(context: Context) { try { - JsonUtils.afterJson() - if (JsonUtils.initParamsJson(context)) { - execRecord(context) - } + afterJson() + execRecord(context) } catch (e: Exception) { e.printStackTrace() Log.i("TaskUtils", "execSetJson error : " + e.message) diff --git a/app/src/main/java/com/android/grape/util/ShellUtils.kt b/app/src/main/java/com/android/grape/util/ShellUtils.kt index 5993264..8719d13 100644 --- a/app/src/main/java/com/android/grape/util/ShellUtils.kt +++ b/app/src/main/java/com/android/grape/util/ShellUtils.kt @@ -512,7 +512,7 @@ object ShellUtils { fun unZipFileSh(zipFileName: String, dataDir: String) { try { - val cmdString = "tar -zxvf $zipFileName --strip-components=1 -C $dataDir" + val cmdString = "tar -zxvf $zipFileName -C $dataDir" Log.i("ShellUtils", "unZipFileSh-> cmd:$cmdString") MockTools.exec(cmdString) } catch (e: Exception) { diff --git a/app/src/main/java/com/android/grape/util/TaskUtils.kt b/app/src/main/java/com/android/grape/util/TaskUtils.kt index 6784b15..531dc31 100644 --- a/app/src/main/java/com/android/grape/util/TaskUtils.kt +++ b/app/src/main/java/com/android/grape/util/TaskUtils.kt @@ -7,59 +7,45 @@ import android.os.Handler import android.os.Looper import android.provider.Settings import android.util.Log -import com.android.grape.net.AfClient.downloadFile import com.android.grape.MainApplication import com.android.grape.data.AppState import com.android.grape.data.AppState.afLog -import com.android.grape.data.AppState.apkDir +import com.android.grape.data.AppState.apk_path import com.android.grape.data.AppState.appDataUrl +import com.android.grape.data.AppState.baoming import com.android.grape.data.AppState.canAutoLc import com.android.grape.data.AppState.clickTime import com.android.grape.data.AppState.installRet import com.android.grape.data.AppState.isCanAuto import com.android.grape.data.AppState.logBuffer -import com.android.grape.data.AppState.monitorDir import com.android.grape.data.AppState.nRandom -import com.android.grape.data.AppState.paramsJson import com.android.grape.data.AppState.recordExtraFileName -import com.android.grape.data.AppState.recordFileName import com.android.grape.data.AppState.recordPackageName import com.android.grape.data.AppState.referer import com.android.grape.data.AppState.regEmailJson import com.android.grape.data.AppState.scriptOpenApp -import com.android.grape.data.AppState.baoming - -import com.android.grape.util.FileUtils.getName - -import com.android.grape.data.AppState.zip_name - -import com.android.grape.data.AppState.apk_path - -import com.android.grape.net.AfClient.postData - -import com.android.grape.util.ContextUtils.getRecordDataDirName - import com.android.grape.data.AppState.taskJson +import com.android.grape.data.AppState.zip_name import com.android.grape.job.DownloadAppJobService import com.android.grape.job.MonitorService import com.android.grape.job.UnInstallService import com.android.grape.manager.ConfigManager import com.android.grape.manager.ConfigManager.initDefaultAppJo import com.android.grape.manager.ConfigManager.initDefaultProxyJo -import com.android.grape.sai.Utils +import com.android.grape.net.AfClient.downloadFile +import com.android.grape.net.AfClient.postData import com.android.grape.util.AppUtils.execTargetApp import com.android.grape.util.AppUtils.getApkPackageName import com.android.grape.util.AppUtils.setTopApp -import com.android.grape.util.ContextUtils.getBaseFilesDir +import com.android.grape.util.ContextUtils.getRecordDataDirName import com.android.grape.util.FileUtils.forceMakeDir +import com.android.grape.util.FileUtils.getName import com.android.grape.util.FileUtils.getRecordDataFileName import com.android.grape.util.JsonUtils.execSetJson import com.blankj.utilcode.util.LogUtils import org.json.JSONObject import java.io.File import java.io.IOException -import java.io.PrintWriter -import java.util.Locale import kotlin.math.min /** @@ -201,20 +187,16 @@ object TaskUtils { ) LogUtils.d("IOSTQ:execReloginTask->result:$result") if (result != null && result.isNotEmpty()) { - taskJson = JSONObject(result).apply { - val code = getInt("code") - if (code == 1) { - MockTools.exec("chmod 777 /data/data/com.android.grape/files/monitor") - MockTools.exec("chmod 777 /data/data/com.android.grape/files/monitor/apks") - JsonUtils.execSetJson(context) - clickTime = 1 - } else { - Log.i( - "TaskUtils", - "request result code invalid : $code" - ) - setFinish(context) - } + taskJson = JSONObject(result) + val code = taskJson?.getInt("code") + if (code == 1) { + MockTools.exec("chmod 777 /data/data/com.android.grape/files/monitor") + MockTools.exec("chmod 777 /data/data/com.android.grape/files/monitor/apks") + execSetJson(context) + clickTime = 1 + } else { + Log.i("TaskUtils", "request result code invalid : $code") + setFinish(context) } } else { Log.i("TaskUtils", "request result is null") @@ -333,23 +315,6 @@ object TaskUtils { return false } - - val paramString: String - get() = paramsJson.toString() - - - public fun notcl(context: Context) { - val url = "http://127.0.0.1:8090/ctl/notcl" - - try { - val ret: String = postData("".toByteArray(charset("utf-8")), url) ?: "" - Log.i("TaskUtils", "notcl ret : $ret") - } catch (e: Exception) { - e.printStackTrace() - } - } - - fun openRecordApp(context: Context) { if (scriptOpenApp == 0) { recordPackageName?.let {