From 25f2f6f6652e0ad79a0036d95866a85540b1e919 Mon Sep 17 00:00:00 2001 From: Dr-TSNG Date: Thu, 10 Jun 2021 13:12:47 +0800 Subject: [PATCH] feat: add dual detection --- .gitignore | 4 +++- app/src/main/cpp/sigverify.cpp | 2 +- .../java/com/tsng/hidemyapplist/MainActivity.kt | 16 ++++++++++++---- .../main/java/com/tsng/hidemyapplist/Utils.kt | 3 +++ .../tsng/hidemyapplist/ui/DetectionActivity.java | 12 ++++++------ app/src/main/res/values-zh-rCN/strings.xml | 2 ++ app/src/main/res/values/strings.xml | 2 ++ 7 files changed, 29 insertions(+), 12 deletions(-) create mode 100644 app/src/main/java/com/tsng/hidemyapplist/Utils.kt diff --git a/.gitignore b/.gitignore index 5df9671..753b81a 100644 --- a/.gitignore +++ b/.gitignore @@ -76,4 +76,6 @@ lint/tmp/ # lint/reports/ # Android Profiling -*.hprof \ No newline at end of file +*.hprof + +updates/ \ No newline at end of file diff --git a/app/src/main/cpp/sigverify.cpp b/app/src/main/cpp/sigverify.cpp index 2b39204..6035056 100644 --- a/app/src/main/cpp/sigverify.cpp +++ b/app/src/main/cpp/sigverify.cpp @@ -119,6 +119,6 @@ Java_com_tsng_hidemyapplist_MainActivity_initNative(JNIEnv *env, jobject, jstrin } extern "C" JNIEXPORT jint JNICALL -Java_com_tsng_hidemyapplist_ui_DetectionActivity_00024DetectionTask_nativeSync(JNIEnv *, jobject, jint result) { +Java_com_tsng_hidemyapplist_UtilsKt_nativeSync(JNIEnv *, jclass clazz, jint result) { return sign ^ 0b1010011010 ? result * (0x53 - 0b1010011) + 1 : result * (0x4c - 0b1001011); } \ No newline at end of file diff --git a/app/src/main/java/com/tsng/hidemyapplist/MainActivity.kt b/app/src/main/java/com/tsng/hidemyapplist/MainActivity.kt index bc1efa9..2a4eb14 100644 --- a/app/src/main/java/com/tsng/hidemyapplist/MainActivity.kt +++ b/app/src/main/java/com/tsng/hidemyapplist/MainActivity.kt @@ -1,5 +1,6 @@ package com.tsng.hidemyapplist +import android.annotation.SuppressLint import android.content.Intent import android.net.Uri import android.os.Bundle @@ -18,6 +19,7 @@ import okhttp3.Request import org.json.JSONObject import java.util.* import kotlin.concurrent.thread +import kotlin.system.exitProcess class MainActivity : AppCompatActivity(), View.OnClickListener { companion object { @@ -39,10 +41,17 @@ class MainActivity : AppCompatActivity(), View.OnClickListener { initNative(applicationContext.packageResourcePath) setContentView(R.layout.activity_main) setSupportActionBar(toolbar) - startService(Intent(this, ProvidePreferenceService::class.java)) + if(!filesDir.absolutePath.startsWith("/data/user/0/")) { + Toast.makeText(this, R.string.do_not_dual, Toast.LENGTH_LONG).show() + finish() + exitProcess(0) + } + if (nativeSync(0) xor 1 == 0x01) + startService(Intent(this, ProvidePreferenceService::class.java)) makeUpdateAlert() } + @SuppressLint("SetTextI18n") override fun onResume() { super.onResume() val serviceVersion = XposedUtils.getServiceVersion(this) @@ -66,10 +75,9 @@ class MainActivity : AppCompatActivity(), View.OnClickListener { else xposed_status_sub_text.text = getString(R.string.xposed_service_on) + " [$serviceVersion]" val text = getString(R.string.xposed_serve_times).split("#") xposed_status_serve_times.visibility = View.VISIBLE - xposed_status_serve_times.text = text[0] + XposedUtils.getServeTimes(this) + text[2] + xposed_status_serve_times.text = text[0] + nativeSync(XposedUtils.getServeTimes(this)) + text[2] riru_status_text.visibility = View.VISIBLE - val riruExtensionVersion = XposedUtils.getRiruExtensionVersion(this) - when (riruExtensionVersion) { + when (val riruExtensionVersion = XposedUtils.getRiruExtensionVersion(this)) { 0 -> riru_status_text.text = getString(R.string.riru_not_installed) -1 -> riru_status_text.text = getString(R.string.riru_version_too_old) -2 -> riru_status_text.text = getString(R.string.riru_apk_version_too_old) diff --git a/app/src/main/java/com/tsng/hidemyapplist/Utils.kt b/app/src/main/java/com/tsng/hidemyapplist/Utils.kt new file mode 100644 index 0000000..b08172c --- /dev/null +++ b/app/src/main/java/com/tsng/hidemyapplist/Utils.kt @@ -0,0 +1,3 @@ +package com.tsng.hidemyapplist + +external fun nativeSync(result: Int): Int \ No newline at end of file diff --git a/app/src/main/java/com/tsng/hidemyapplist/ui/DetectionActivity.java b/app/src/main/java/com/tsng/hidemyapplist/ui/DetectionActivity.java index 24dd695..b05c0fd 100644 --- a/app/src/main/java/com/tsng/hidemyapplist/ui/DetectionActivity.java +++ b/app/src/main/java/com/tsng/hidemyapplist/ui/DetectionActivity.java @@ -23,6 +23,7 @@ import androidx.preference.PreferenceManager; import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.tsng.hidemyapplist.BuildConfig; import com.tsng.hidemyapplist.R; +import com.tsng.hidemyapplist.UtilsKt; import java.io.BufferedReader; import java.io.File; @@ -190,19 +191,19 @@ public class DetectionActivity extends AppCompatActivity implements View.OnClick br.append(getString(R.string.detection_color_means)).append("
"); br.append("
API requests
"); for (Map.Entry entry : M0.entrySet()) - br.append(res.apply(nativeSync(methodStatus[0][entry.getValue()]))).append(entry.getKey()).append("
"); + br.append(res.apply(UtilsKt.nativeSync(methodStatus[0][entry.getValue()]))).append(entry.getKey()).append("
"); br.append("
Intent queries
"); for (Map.Entry entry : M1.entrySet()) - br.append(res.apply(nativeSync(methodStatus[1][entry.getValue()]))).append(entry.getKey()).append("
"); + br.append(res.apply(UtilsKt.nativeSync(methodStatus[1][entry.getValue()]))).append(entry.getKey()).append("
"); br.append("
ID detections
"); for (Map.Entry entry : M2.entrySet()) - br.append(res.apply(nativeSync(methodStatus[2][entry.getValue()]))).append(entry.getKey()).append("
"); + br.append(res.apply(UtilsKt.nativeSync(methodStatus[2][entry.getValue()]))).append(entry.getKey()).append("
"); br.append("
File detections
"); for (Map.Entry entry : M3.entrySet()) - br.append(res.apply(nativeSync(methodStatus[3][entry.getValue()]))).append(entry.getKey()).append("
"); + br.append(res.apply(UtilsKt.nativeSync(methodStatus[3][entry.getValue()]))).append(entry.getKey()).append("
"); br.append("
Characteristics
"); for (Map.Entry entry : M4.entrySet()) - br.append(res.apply(nativeSync(methodStatus[4][entry.getValue()]))).append(entry.getKey()).append("
"); + br.append(res.apply(UtilsKt.nativeSync(methodStatus[4][entry.getValue()]))).append(entry.getKey()).append("
"); new MaterialAlertDialogBuilder(DetectionActivity.this) @@ -280,7 +281,6 @@ public class DetectionActivity extends AppCompatActivity implements View.OnClick methodStatus[2][M2.get("getPackageUid")] = 0; } - private native int nativeSync(int result); private native int[] nativeFile(String path); private void method_file() { diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index dacc08c..414caf4 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -7,6 +7,8 @@ 错误 添加 + 不要双开模块 APP,这会导致配置覆盖! + 新版本可用: 更新日志 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 1fc2331..4f41a9e 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -7,6 +7,8 @@ Error Add + Do not dual the module app, cause it will lead to config override! + New update: New features