[app] Recommend to use parasitic manager (#1194)

This commit is contained in:
LoveSy 2021-09-30 14:21:23 +08:00 committed by GitHub
parent d51fa92f82
commit 7f247bd38f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
34 changed files with 54 additions and 69 deletions

View File

@ -38,6 +38,7 @@ import androidx.preference.PreferenceManager;
import com.google.gson.JsonParser;
import org.lsposed.hiddenapibypass.HiddenApiBypass;
import org.lsposed.manager.receivers.LSPManagerServiceHolder;
import org.lsposed.manager.repo.RepoLoader;
import org.lsposed.manager.ui.activity.CrashReportActivity;
import org.lsposed.manager.util.DoHDNS;
@ -112,6 +113,10 @@ public class App extends Application {
return instance.executorService;
}
public static boolean isParasitic() {
return !Process.isApplicationUid(Process.myUid());
}
private void setCrashReport() {
Thread.setDefaultUncaughtExceptionHandler((thread, throwable) -> {
@ -140,7 +145,7 @@ public class App extends Application {
@Override
public void onCreate() {
super.onCreate();
if (!BuildConfig.DEBUG && Process.isApplicationUid(Process.myUid())) {
if (!BuildConfig.DEBUG && !isParasitic()) {
setCrashReport();
}

View File

@ -26,11 +26,6 @@ import android.widget.Toast;
import org.lsposed.manager.receivers.LSPManagerServiceHolder;
public class Constants {
public static void showErrorToast(int type) {
Toast.makeText(App.getInstance(), R.string.app_destroyed, Toast.LENGTH_LONG).show();
}
public static boolean setBinder(IBinder binder) {
LSPManagerServiceHolder.init(binder);
return LSPManagerServiceHolder.getService().asBinder().isBinderAlive();

View File

@ -27,6 +27,7 @@ import android.text.TextUtils;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.core.os.BuildCompat;
@ -34,11 +35,14 @@ import androidx.navigation.NavController;
import androidx.navigation.Navigation;
import androidx.navigation.fragment.NavHostFragment;
import org.lsposed.manager.App;
import org.lsposed.manager.ConfigManager;
import org.lsposed.manager.NavGraphDirections;
import org.lsposed.manager.R;
import org.lsposed.manager.databinding.ActivityMainBinding;
import org.lsposed.manager.receivers.LSPManagerServiceHolder;
import org.lsposed.manager.ui.activity.base.BaseActivity;
import org.lsposed.manager.ui.dialog.BlurBehindDialogBuilder;
public class MainActivity extends BaseActivity {
private static final String KEY_PREFIX = MainActivity.class.getName() + '.';
@ -70,6 +74,22 @@ public class MainActivity extends BaseActivity {
if (savedInstanceState == null) {
handleIntent(getIntent());
}
if (!App.isParasitic() && !App.getPreferences().getBoolean("never_show_shortcut", false)) {
new BlurBehindDialogBuilder(this)
.setTitle(R.string.parasitic_recommend)
.setMessage(R.string.parasitic_recommend_summary)
.setNegativeButton(R.string.never_show, (dialog, which) -> App.getPreferences().edit().putBoolean("never_show_shortcut", true).apply())
.setNeutralButton(R.string.create_shortcut, (dialog, which) -> {
try {
LSPManagerServiceHolder.getService().createShortcut();
} catch (Throwable e) {
Toast.makeText(this, getString(R.string.failed_to_create_shortcut, e.getMessage()), Toast.LENGTH_LONG).show();
}
})
.setPositiveButton(android.R.string.ok, null)
.show();
}
}
@Override

View File

@ -25,7 +25,6 @@
<androidx.slidingpanelayout.widget.SlidingPaneLayout
android:id="@+id/snackbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:animateLayoutChanges="true">

View File

@ -34,5 +34,4 @@
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:navGraph="@navigation/nav_graph" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -180,7 +180,6 @@
<string name="module_release_no_more">لا مزيد من الإصدار</string>
<string name="repo_load_failed">فشل تحميل مستودع الوحدة: %s</string>
<!-- CrashReportActivity -->
<string name="app_destroyed">قد يتم تدمير هذا التطبيق، يرجى تحميل أحدث إصدار من هذا التطبيق من المصدر الرسمي.</string>
<string name="outdated_core">تطبيق LSPosed أحدث من الإطار. الرجاء تحديث إطار LSPosd.</string>
<string name="outdated_manager">إطار LSPosed أحدث من التطبيق. الرجاء تحديث التطبيق من /data/adb/lspd/manager.apk يدويا.</string>
<string name="manager_crashed">تعطل المدير</string>

View File

@ -176,7 +176,6 @@
<string name="module_release_no_more">Keine Veröffentlichung mehr</string>
<string name="repo_load_failed">Fehler beim Laden der Modulrepo: %s</string>
<!-- CrashReportActivity -->
<string name="app_destroyed">Diese Anwendung wurde deinstalliert. Laden Sie sie unbedingt von der offiziellen Quelle herunter.</string>
<string name="outdated_core">Die LSPosed-App ist neuer als das Framework. Bitte aktualisieren Sie das LSPosed-Framework.</string>
<string name="outdated_manager">Die Version von LSPosed Manager und LSPosed Core stimmen nicht überein. Installieren Sie die entsprechende Version neu.</string>
<string name="manager_crashed">Manager abgestürzt</string>

View File

@ -176,7 +176,6 @@
<string name="module_release_no_more">انتشار جدیدی نیست</string>
<string name="repo_load_failed">ناموفق در بارگذاری ماژول: %s</string>
<!-- CrashReportActivity -->
<string name="app_destroyed">ممکن است این برنامه از بین برود ، لطفاً آخرین نسخه این برنامه را از منبع رسمی بارگیری کنید.</string>
<string name="outdated_core">برنامه LSPosed جدیدتر از فریمورک است. لطفاً چارچوب LSPosed را به روز کنید.</string>
<string name="outdated_manager">چارچوب LSPosed جدیدتر از برنامه است. لطفاً برنامه را از /data/adb/lspd/manager.apk به صورت دستی به روز کنید.</string>
<string name="manager_crashed">منیجر هنگ کرده</string>

View File

@ -176,7 +176,6 @@
<string name="module_release_no_more">Pas d\autres versions</string>
<string name="repo_load_failed">Échec de chargement du dépôt des modules: %s</string>
<!-- CrashReportActivity -->
<string name="app_destroyed">Cette application à été détruite, merci de vous assurer que vous l\avez bien téléchargé depuis la source officielle.</string>
<string name="outdated_core">L\'application LSPosed est plus réçente que le sous système. Merci de mettre à jour le sous système LSPosed.</string>
<string name="outdated_manager">Version du Gestionnaire LSPosed et du noyau LSPosed ne sont pas cohérents. Merci de réinstaller la version correspondante.</string>
<string name="manager_crashed">Plantage du Gestionnaire</string>

View File

@ -129,6 +129,5 @@
<string name="module_release_no_more">אין עוד גרסאות</string>
<string name="repo_load_failed">נשכל לטעון מודול: %s</string>
<!-- CrashReportActivity -->
<string name="app_destroyed">האפליקציה הושמדה. אנא ודא שהורדת אותה מהמקור הרשמי.</string>
<string name="outdated_manager">הגרסה של LSPosed Manager ו- LSPosed Core לא תואמות. אנא התקן מחדש גרסאות תואמות.</string>
</resources>

View File

@ -175,7 +175,6 @@
<string name="module_release_no_more">Tidak ada rilis</string>
<string name="repo_load_failed">Gagal memuat repo modul: %s</string>
<!-- CrashReportActivity -->
<string name="app_destroyed">Aplikasi ini berbahaya, silakan unduh versi terbaru aplikasi ini dari sumber resmi.</string>
<string name="outdated_core">Aplikasi LSPosed lebih baru dari kerangka kerja. Harap perbarui kerangka kerja LSPosed.</string>
<string name="outdated_manager">Kerangka kerja LSPosed lebih baru dari aplikasi. Harap perbarui aplikasi dari /data/adb/lspd/manager.apk secara manual.</string>
<string name="manager_crashed">Manajer rusak</string>

View File

@ -174,10 +174,7 @@
<string name="module_release_no_more">Tidak ada rilis</string>
<string name="repo_load_failed">Gagal memuat repo modul: %s</string>
<!-- CrashReportActivity -->
<string name="app_destroyed">Aplikasi ini berbahaya, silakan unduh versi terbaru aplikasi ini dari sumber resmi.</string>
<string name="outdated_core">Aplikasi LSPosed lebih baru dari kerangka kerja. Harap perbarui kerangka kerja LSPosed.</string>
<string name="outdated_manager">Kerangka kerja LSPosed lebih baru dari aplikasi. Harap perbarui aplikasi dari /data/adb/lspd/manager.apk secara manual.</string>
<string name="manager_crashed">Manajer rusak</string>
<string name="copy_crash_info">Salin informasi kerusakan</string>
<string name="copy_toast_msg">Disalin</string>
</resources>

View File

@ -176,7 +176,6 @@
<string name="module_release_no_more">Non ci sono altre versioni</string>
<string name="repo_load_failed">Impossibile caricare il repository dei moduli: %s</string>
<!-- CrashReportActivity -->
<string name="app_destroyed">Quest\'app potrebbe essere corrotta, scarica l\'ultima versione dalla fonte ufficiale.</string>
<string name="outdated_core">L\'app di LSPosed è più recente del framework. Aggiorna il framework di LSPosed.</string>
<string name="outdated_manager">Il framework di LSPosed è più recente dell\'app. Aggiorna l\'app da /data/adb/lspd/manager.apk manualmente.</string>
<string name="manager_crashed">Manager andato in crash</string>

View File

@ -128,6 +128,5 @@
<string name="module_release_no_more">אין עוד גרסאות</string>
<string name="repo_load_failed">נשכל לטעון מודול: %s</string>
<!-- CrashReportActivity -->
<string name="app_destroyed">האפליקציה הושמדה. אנא ודא שהורדת אותה מהמקור הרשמי.</string>
<string name="outdated_manager">הגרסה של LSPosed Manager ו- LSPosed Core לא תואמות. אנא התקן מחדש גרסאות תואמות.</string>
</resources>

View File

@ -175,7 +175,6 @@
<string name="module_release_no_more">これ以上のリリースはありません</string>
<string name="repo_load_failed">モジュールリポジトリの読み込みに失敗: %s</string>
<!-- CrashReportActivity -->
<string name="app_destroyed">本アプリケーションの内部で壊れています。公式ソースからダウンロードされたものであるかを確認して下さい。</string>
<string name="outdated_core">LSPosedアプリはフレームワークより新しいです。LSPosedフレームワークを更新してください。</string>
<string name="outdated_manager">LSPosed Manager と LSPosed Core のバージョンが一致していません。対応バージョンを再インストールして下さい。</string>
<string name="manager_crashed">マネージャーがクラッシュしました</string>

View File

@ -155,7 +155,6 @@
<string name="module_release_load_more">이전 버전 표시</string>
<string name="repo_load_failed">모듈 저장소를 로드하지 못함: %s</string>
<!-- CrashReportActivity -->
<string name="app_destroyed">이 응용 프로그램이 삭제되었습니다. 공식 소스에서 다운로드했는지 확인하십시오.</string>
<string name="outdated_manager">LSPosed Manager 및 LSPosed Core 버전이 일치하지 않습니다. 해당 버전을 다시 설치하십시오.</string>
<string name="send_crash_info">충돌 정보 전송</string>
<string name="crash_info_copied">충돌 정보가 클립보드에 복사되었습니다.</string>

View File

@ -176,7 +176,6 @@
<string name="module_release_no_more">Geen release meer</string>
<string name="repo_load_failed">Kan moduleopslagplaats niet laden: %1$s</string>
<!-- CrashReportActivity -->
<string name="app_destroyed">Deze applicatie is vernietigd, zorg ervoor dat u deze downloadt vanaf de officiële bron.</string>
<string name="outdated_core">LSPosed app is nieuwer dan framework. Update LSPosed framework.</string>
<string name="outdated_manager">De versie van LSPosed Manager en LSPosed Core zijn niet consistent. Installeer de corresponderende versie opnieuw.</string>
<string name="manager_crashed">Manager gecrasht</string>

View File

@ -178,7 +178,6 @@
<string name="module_release_no_more">Nie ma więcej wersji</string>
<string name="repo_load_failed">Nie udało się załadować repozytorium modułu: %s</string>
<!-- CrashReportActivity -->
<string name="app_destroyed">Ta aplikacja może zostać zniszczona, pobierz najnowszą wersję tej aplikacji z oficjalnego źródła.</string>
<string name="outdated_core">Aplikacja LSPosed jest nowsza niż framework. Proszę zaktualizować framework LSPosed.</string>
<string name="outdated_manager">Framework LSPosed jest nowszy niż aplikacja. Proszę zaktualizuj aplikację ręcznie z /data/adb/lspd/manager.apk.</string>
<string name="manager_crashed">Menedżer uległ awarii</string>

View File

@ -176,7 +176,6 @@
<string name="module_release_no_more">Não há mais versões</string>
<string name="repo_load_failed">Falha ao carregar o repositório de módulos: %s</string>
<!-- CrashReportActivity -->
<string name="app_destroyed">Este app foi destruído, certifique-se de que você baixou da fonte oficial.</string>
<string name="outdated_core">App do LSPosed é mais novo que framework. Atualize a Framework do Lsposed.</string>
<string name="outdated_manager">O framework do LSPosed é mais recente que o app. Por favor, atualize o app manualmente em /data/adb/lspd/manager.apk.</string>
<string name="manager_crashed">Gerenciador travou</string>

View File

@ -116,10 +116,7 @@
<string name="module_release_no_more">Não há mais versões</string>
<string name="repo_load_failed">Falha ao carregar o repositório de módulos: %s</string>
<!-- CrashReportActivity -->
<string name="app_destroyed">Este app pode estar corrompido, por favor, baixe a versão mais recente deste app pela fonte oficial.</string>
<string name="outdated_core">App do LSPosed é mais novo que framework. Atualize a Framework do LSPosed.</string>
<string name="outdated_manager">Framework do LSPosed é mais novo que o app. Atualize manualmente o aplicativo em /data/adb/lspd/manager.apk.</string>
<string name="manager_crashed">Gerenciador travou</string>
<string name="copy_crash_info">Copiar informações do erro</string>
<string name="copy_toast_msg">Copiado</string>
</resources>

View File

@ -116,7 +116,6 @@
<string name="module_release_no_more">Não há mais versões</string>
<string name="repo_load_failed">Falha ao carregar o repositório de módulos: %s</string>
<!-- CrashReportActivity -->
<string name="app_destroyed">Este app pode estar corrompido, por favor, baixe a versão mais recente deste app pela fonte oficial.</string>
<string name="outdated_core">App do LSPosed é mais novo que framework. Atualize a Framework do LSPosed.</string>
<string name="outdated_manager">Framework do LSPosed é mais novo que o app. Atualize manualmente o aplicativo em /data/adb/lspd/manager.apk.</string>
<string name="manager_crashed">Gerenciador travou</string>

View File

@ -178,7 +178,6 @@
<string name="module_release_no_more">Больше нет других версий</string>
<string name="repo_load_failed">Не удалось загрузить репозиторий модуля: %s</string>
<!-- CrashReportActivity -->
<string name="app_destroyed">Это приложение повреждено. Убедитесь, что загрузили его из официального источника</string>
<string name="outdated_core">Приложение LSPosed новее, чем фреймворк LSPosed. Обновите фреймворк LSPosed</string>
<string name="outdated_manager">Фреймворк LSPosed новее, чем приложение LSPosed. Обновите приложение вручную из /data/adb/lspd/manager.apk</string>
<string name="manager_crashed">Сбой приложения LSPosed</string>

View File

@ -170,7 +170,6 @@
<string name="module_release_no_more">Daha fazla sürüm yok</string>
<string name="repo_load_failed">Modül deposu yüklenemedi: %s</string>
<!-- CrashReportActivity -->
<string name="app_destroyed">Bu uygulama bozuk olabilir, lütfen bu uygulamanın en son sürümünü resmi kaynaktan indirin.</string>
<string name="outdated_core">LSPosed uygulaması çerçeveden daha yenidir. Lütfen LSPosed çerçevesini güncelleyin.</string>
<string name="outdated_manager">LSPosed çerçevesi, uygulamadan daha yenidir. Lütfen uygulamayı /data/adb/lspd/manager.apk adresinden manuel olarak güncelleyin.</string>
<string name="manager_crashed">Yönetici çöktü</string>

View File

@ -177,7 +177,6 @@
<string name="module_release_no_more">Більше релізів немає</string>
<string name="repo_load_failed">Не вдалося завантажити модуль репозиторія: %s</string>
<!-- CrashReportActivity -->
<string name="app_destroyed">Ця програма припинила роботу, будь ласка, переконайтесь, що завантажили її з офіційного джерела.</string>
<string name="outdated_core">Програма LSPosed новіша, ніж фреймворк. Будь ласка, оновіть фреймворк LSPosed.</string>
<string name="outdated_manager">Версія LSPosed Manager і LSPosed Core не узгоджуються. Будь ласка, встановіть відповідну версію.</string>
<string name="manager_crashed">Менеджер зазнав збою</string>

View File

@ -175,7 +175,6 @@
<string name="module_release_no_more">Không có phiên bản nào</string>
<string name="repo_load_failed">Tải kho lưu trữ mô-đun thất bại: %s</string>
<!-- CrashReportActivity -->
<string name="app_destroyed">Ứng dụng này có thể đã bị phá hủy, vui lòng tải xuống phiên bản mới nhất của ứng dụng này từ nguồn chính thức.</string>
<string name="outdated_core">Ứng dụng LSPosed đang mới hơn framework. Xin hãy cập nhật LSPosed framework.</string>
<string name="outdated_manager">LSPosed framework đang mới hơn phiên bản ứng dụng quản lý. Xin hãy cập nhật ứng dụng tại /data/adb/lspd/manager.apk thủ công.</string>
<string name="manager_crashed">Quản lý hỏng hóc</string>

View File

@ -175,7 +175,6 @@
<string name="module_release_no_more">没有更旧的版本</string>
<string name="repo_load_failed">模块仓库加载失败:%s</string>
<!-- CrashReportActivity -->
<string name="app_destroyed">此应用可能被损坏,请从官方来源下载该应用的最新版本。</string>
<string name="outdated_core">LSPosed 应用的版本高于框架。请更新 LSPosed 框架。</string>
<string name="outdated_manager">LSPosed 框架的版本高于应用。请从 /data/adb/lspd/manager.apk 更新 LSPosed 应用。</string>
<string name="manager_crashed">应用出现未知错误</string>

View File

@ -175,7 +175,6 @@
<string name="module_release_no_more">沒有更舊的版本</string>
<string name="repo_load_failed">模組倉庫加載失敗: %s</string>
<!-- CrashReportActivity -->
<string name="app_destroyed">此應用程式可能被損壞,請確保您從官方來源下載該應用程式的最新版本。</string>
<string name="outdated_core">LSPosed 管理器版本高於框架,請更新 LSPosed 框架。</string>
<string name="outdated_manager">LSPosed 管理器和 LSPosed 核心的版本不一致。請手動從 /data/adb/lspd/manager.apk 更新管理器。</string>
<string name="manager_crashed">應用程式出現未知錯誤</string>

View File

@ -175,7 +175,6 @@
<string name="module_release_no_more">沒有更早期的版本</string>
<string name="repo_load_failed">模組倉庫載入失敗:%s</string>
<!-- CrashReportActivity -->
<string name="app_destroyed">此應用程式可能已毀損,請從官方來源下載該應用程式的最新版本。</string>
<string name="outdated_core">LSPosed 應用程式的版本高於框架。請更新 LSPosed 框架。</string>
<string name="outdated_manager">LSPosed 框架的版本高於應用程式。請從 /data/adb/lspd/manager.apk 更新 LSPosed 應用程式。</string>
<string name="manager_crashed">應用程式出現未知錯誤</string>

View File

@ -56,6 +56,11 @@
<string name="info_system_version">System version</string>
<string name="info_device">Device</string>
<string name="info_system_abi">System ABI</string>
<string name="parasitic_recommend">Parasitic Manager Recommended</string>
<string name="parasitic_recommend_summary">LSPosed now supports system parasitization to avoid detection. You can safely uninstall the manager after successfully creating a shortcut of the parasitic manager. In any case you can install the manager back from /data/adb/lspd/manager.apk.</string>
<string name="create_shortcut">Create shortcut</string>
<string name="never_show">Never show</string>
<string name="failed_to_create_shortcut">Failed to create shortcut: %1$s</string>
<!-- LogsActivity -->
<string name="menuSaveToSd">Save</string>
@ -185,7 +190,6 @@
<string name="repo_load_failed">Failed to load module repo: %s</string>
<!-- CrashReportActivity -->
<string name="app_destroyed">This app may be destroyed, please download the latest version of this app from the official source.</string>
<string name="outdated_core">LSPosed app is newer than framework. Please update LSPosed framework.</string>
<string name="outdated_manager">LSPosed framework is newer than app. Please update the app from /data/adb/lspd/manager.apk manually.</string>
<string name="manager_crashed">Manager crashed</string>

View File

@ -227,10 +227,14 @@ public class ConfigManager {
Log.e(TAG, Log.getStackTraceString(e));
}
updateManager();
updateManager(false);
}
public synchronized void updateManager() {
public synchronized void updateManager(boolean uninstalled) {
if (uninstalled){
managerUid = -1;
return;
}
if (!PackageService.isAlive()) return;
try {
PackageInfo info = PackageService.getPackageInfo(BuildConfig.DEFAULT_MANAGER_PACKAGE_NAME, 0, 0);
@ -256,7 +260,7 @@ public class ConfigManager {
Log.d(TAG, "pm is ready, updating cache");
// must ensure cache is valid for later usage
instance.updateCaches(true);
instance.updateManager();
instance.updateManager(false);
}
}
return instance;

View File

@ -263,9 +263,9 @@ public class LSPManagerService extends ILSPManagerService.Stub {
}
}
public static void createOrUpdateShortcut() {
public static void createOrUpdateShortcut(boolean force) {
try {
if (ConfigManager.getInstance().isManagerInstalled()) {
if (!force && ConfigManager.getInstance().isManagerInstalled()) {
Log.d(TAG, "Manager has installed, skip adding shortcut");
return;
}
@ -654,4 +654,9 @@ public class LSPManagerService extends ILSPManagerService.Stub {
forceStopPackage(BuildConfig.MANAGER_INJECTED_PKG_NAME, 0);
stopAndStartActivity(BuildConfig.MANAGER_INJECTED_PKG_NAME, intent, false);
}
@Override
public void createShortcut() {
createOrUpdateShortcut(true);
}
}

View File

@ -136,6 +136,8 @@ public class LSPosedService extends ILSPosedService.Stub {
break;
}
}
boolean removed = intent.getAction().equals(Intent.ACTION_PACKAGE_FULLY_REMOVED) ||
intent.getAction().equals(Intent.ACTION_UID_REMOVED);
if (isXposedModule) {
Log.d(TAG, "module " + moduleName + " changed, dispatching to manager");
var enabledModules = ConfigManager.getInstance().enabledModules();
@ -143,8 +145,6 @@ public class LSPosedService extends ILSPosedService.Stub {
boolean systemModule = scope != null &&
scope.parallelStream().anyMatch(app -> app.packageName.equals("android"));
boolean enabled = Arrays.asList(enabledModules).contains(moduleName);
boolean removed = intent.getAction().equals(Intent.ACTION_PACKAGE_FULLY_REMOVED) ||
intent.getAction().equals(Intent.ACTION_UID_REMOVED);
if (!removed) {
LSPManagerService.showNotification(moduleName, userId, enabled, systemModule);
}
@ -154,17 +154,17 @@ public class LSPosedService extends ILSPosedService.Stub {
if (BuildConfig.DEFAULT_MANAGER_PACKAGE_NAME.equals(moduleName) && userId == 0) {
Log.d(TAG, "Manager updated");
try {
ConfigManager.getInstance().updateManager();
ConfigManager.getInstance().updateManager(removed);
LSPManagerService.createOrUpdateShortcut(false);
} catch (Throwable e) {
Log.e(TAG, Log.getStackTraceString(e));
}
}
}
synchronized public void dispatchUserUnlocked(Intent intent) {
try {
LSPManagerService.createOrUpdateShortcut();
LSPManagerService.createOrUpdateShortcut(false);
} catch (Throwable e) {
Log.e(TAG, "dispatch user unlocked", e);
}
@ -173,7 +173,7 @@ public class LSPosedService extends ILSPosedService.Stub {
synchronized public void dispatchConfigurationChanged(Intent intent) {
try {
ConfigFileManager.reloadConfiguration();
LSPManagerService.createOrUpdateShortcut();
LSPManagerService.createOrUpdateShortcut(false);
} catch (Throwable e) {
Log.e(TAG, "dispatch configuration changed", e);
}

View File

@ -56,27 +56,6 @@ public class InstallerVerifier {
}
}
public static void hookBadManager(final ClassLoader classLoader) {
var str = "This app may be destroyed, please download the latest version of this app from the official source.";
try {
Class<?> ConstantsClass = XposedHelpers.findClass("org.lsposed.manager.Constants", classLoader);
XposedHelpers.findAndHookMethod(android.app.Activity.class, "onCreate", Bundle.class, new XC_MethodHook() {
@Override
protected void afterHookedMethod(MethodHookParam param) {
try {
XposedHelpers.callStaticMethod(ConstantsClass, "showErrorToast", 0);
} catch (Throwable t) {
Utils.logW("showErrorToast: ", t);
Toast.makeText((Context) param.thisObject, str, Toast.LENGTH_LONG).show();
}
new Handler(Looper.getMainLooper()).postDelayed(() -> System.exit(0), 1000);
}
});
} catch (Throwable t) {
Utils.logW("hookBadManager: ", t);
}
}
public static boolean sendBinderToManager(final ClassLoader classLoader, IBinder binder) {
Utils.logI("Found LSPosed Manager");
try {

View File

@ -65,4 +65,6 @@ interface ILSPManagerService {
Map<String,ParcelFileDescriptor> getLogs() = 34;
void restartFor(in Intent intent) = 35;
void createShortcut() = 36;
}