Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
mywalkb committed Oct 11, 2023
2 parents a4d6313 + f892775 commit ad6816c
Show file tree
Hide file tree
Showing 36 changed files with 180 additions and 100 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ A Riru / Zygisk module trying to provide an ART hooking framework which delivers
## Supported Versions

Android 8.1 ~ 13
Android 8.1 ~ 14

## Install

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,9 @@
import android.app.Dialog;
import android.os.Build;
import android.os.Bundle;
import android.system.ErrnoException;
import android.system.Os;
import android.system.OsConstants;
import android.text.method.LinkMovementMethod;
import android.view.LayoutInflater;
import android.view.Menu;
Expand Down Expand Up @@ -50,8 +53,12 @@
import org.lsposed.manager.util.UpdateUtil;
import org.lsposed.manager.util.chrome.LinkTransformationMethod;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Arrays;
import java.util.HashMap;
import java.util.concurrent.atomic.AtomicBoolean;

import rikka.core.util.ClipboardUtils;
import rikka.material.app.LocaleDelegate;
Expand Down Expand Up @@ -145,6 +152,7 @@ private void updateStates(Activity activity, boolean binderAlive, boolean needUp
}
binding.statusSummary.setText(String.format(LocaleDelegate.getDefaultLocale(), "%s (%d) - %s",
ConfigManager.getXposedVersionName(), ConfigManager.getXposedVersionCode(), ConfigManager.getApi()));
binding.developerWarningCard.setVisibility(isDeveloper() ? View.VISIBLE : View.GONE);
} else {
boolean isMagiskInstalled = ConfigManager.isMagiskInstalled();
if (isMagiskInstalled) {
Expand Down Expand Up @@ -252,6 +260,27 @@ private String getDevice() {
return manufacturer;
}

private boolean isDeveloper() {
var developer = new AtomicBoolean(false);
var pids = Paths.get("/data/local/tmp/.studio/ipids");
try (var dir = Files.list(pids)) {
dir.findFirst().ifPresent(name -> {
var pid = Integer.parseInt(name.getFileName().toString());
try {
Os.kill(pid, 0);
developer.set(true);
} catch (ErrnoException e) {
if (e.errno != OsConstants.ESRCH) {
developer.set(true);
}
}
});
} catch (IOException e) {
return false;
}
return developer.get();
}

public static class AboutDialog extends DialogFragment {
@NonNull
@Override
Expand Down
32 changes: 32 additions & 0 deletions app/src/main/res/layout/fragment_home.xml
Original file line number Diff line number Diff line change
Expand Up @@ -215,6 +215,38 @@
</LinearLayout>
</com.google.android.material.card.MaterialCardView>

<com.google.android.material.card.MaterialCardView
android:id="@+id/developer_warning_card"
style="@style/Widget.Material3.CardView.Outlined"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:visibility="gone"
app:cardBackgroundColor="?colorSecondaryContainer">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="?dialogPreferredPadding">

<com.google.android.material.textview.MaterialTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/developer_warning_title"
android:textAppearance="?textAppearanceTitleMedium"
android:textColor="?colorOnSecondaryContainer" />

<com.google.android.material.textview.MaterialTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/developer_warning_summary"
android:textAppearance="?textAppearanceBodyMedium"
android:textColor="?colorOnSecondaryContainer" />

</LinearLayout>
</com.google.android.material.card.MaterialCardView>

<com.google.android.material.card.MaterialCardView
android:id="@+id/info_card"
android:layout_width="match_parent"
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/values-ar/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@
<string name="please_update_summary">يرجى تثبيت أحدث إصدار من LSPosed</string>
<string name="info_api_version">إصدار API</string>
<string name="info_framework_version">إصدار إطار العمل</string>
<string name="info_manager_package_name">اسم حزمة المدير</string>
<string name="info_manager_package_name">Lاسم حزمة المديرo</string>
<string name="info_system_version">إصدار النظام</string>
<string name="info_device">الجهاز</string>
<string name="info_system_abi">نظام ABI</string>
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/res/values-de/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,8 @@ JJ108</string>
<string name="system_prop_incorrect"><![CDATA[Einige notwendige Systemeigenschaften wurden gelöscht oder geändert.<br/>Module können gelegentlich außer Kraft gesetzt werden.]]></string>
<string name="need_update">Aktualisierung erforderlich</string>
<string name="please_update_summary">Bitte installieren Sie die neueste Version von LSPosed</string>
<string name="developer_warning_title">Tipps für Modulentwickler</string>
<string name="developer_warning_summary">Bitte deaktiviere Deploy-Optimierungen in Android Studio oder benutze den `gradlew installDebug` Befehl zum Installieren. Andernfalls wird die Modul-Apk nicht aktualisiert.</string>
<string name="info_api_version">API Version</string>
<string name="info_framework_version">Framework Version</string>
<string name="info_manager_package_name">Name des Managerpakets</string>
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/values-fa/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
<item quantity="one">%d ماژول فعال شده</item>
<item quantity="other">%d ماژول فعال شده</item>
</plurals>
<string name="Logs">سیاهه</string>
<string name="Logs">گزارش ها</string>
<string name="Settings">تنظیمات</string>
<string name="feedback_or_suggestion">بازخورد یا پیشنهاد</string>
<string name="About">درباره</string>
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/values-fr/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
<resources xmlns:tools="http://schemas.android.com/tools" tools:keep="@string/xposed_module_updated_notification_*,@string/module_is_not_activated_*">
<!-- MainActivity -->
<string name="overview">Aperçu</string>
<string name="Modules">Module</string>
<string name="Modules">Modules</string>
<plurals name="modules_enabled_count">
<item quantity="one">%d module actif</item>
<item quantity="other">%d modules actifs</item>
Expand Down
14 changes: 7 additions & 7 deletions app/src/main/res/values-in/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@
<string name="supported">Didukung</string>
<string name="unsupported">Tidak didukung</string>
<string name="android_version_unsatisfied">Versi Android tidak tersedia</string>
<string name="crashed">Crash</string>
<string name="crashed">Rusak</string>
<string name="mount_failed">Mount gagal</string>
<string name="selinux_permissive">SELinux permisif</string>
<string name="sepolicy_incorrect">SELinux policy salah</string>
Expand All @@ -75,15 +75,15 @@
<string name="parasitic_welcome">Selamat datang di LSPosed</string>
<string name="parasitic_welcome_summary">Anda menggunakan manajer parasit, yang dapat membuat pintasan atau dapat terbuka dari notifikasi.</string>
<string name="parasitic_welcome_summary_no_shortcut_support">Anda menggunakan manajer parasit, yang dapat dibuka dari notifikasi.</string>
<string name="create_shortcut">Buat shortcut</string>
<string name="create_shortcut">Buat pintasan</string>
<string name="never_show">Jangan pernah tampilkan</string>
<string name="app_welcome">Manajer Parasit Direkomendasikan</string>
<string name="app_welcome_summary">LSPosed sekarang mendukung parasitisasi sistem untuk menghindari deteksi, Anda dapat membuka manajer parasit dari pemberitahuan. Disarankan untuk menghapus aplikasi saat ini.</string>
<!-- LogsActivity -->
<string name="menuSaveToSd">Simpan</string>
<string name="nav_item_logs_verbose">Log Verbose</string>
<string name="nav_item_logs_module">Log Modul</string>
<string name="logs_saving">Saving log, please wait</string>
<string name="logs_saving">Menyimpan log, harap tunggu</string>
<string name="logs_saved">Log disimpan</string>
<string name="logs_save_failed2">Gagal menyimpan:\n%s</string>
<string name="menuClearLog">Hapus log sekarang</string>
Expand Down Expand Up @@ -134,7 +134,7 @@
<string name="no_scope_selected">Anda tidak memilih aplikasi apa pun. Lanjutkan?</string>
<string name="menu_show_games">Permainan</string>
<string name="menu_show_modules">Modul</string>
<string name="menu_show_denylist">Denylist</string>
<string name="menu_show_denylist">Daftar penolakan</string>
<string name="failed_to_save_scope_list">Gagal menyimpan ke daftar cakupan</string>
<string name="app_version">Versi: %1$s</string>
<string name="use_recommended">Direkomendasikan</string>
Expand All @@ -154,8 +154,8 @@
<string name="reboot_required">Mulai ulang diperlukan agar perubahan ini dapat diterapkan</string>
<string name="reboot">Mulai ulang</string>
<string name="menu_hide">Sembunyikan</string>
<string name="deny_list">%s berada di denylist. Ini mungkin tidak akan berpengaruh.</string>
<string name="deny_list_info">Berada di denylist</string>
<string name="deny_list">%s ada dalam daftar penolakan. Ini mungkin tidak berpengaruh.</string>
<string name="deny_list_info">Berada di daftar tolak</string>
<!-- ModulesActivity and AppListActivity -->
<string name="modules_other_app">Lihat di aplikasi lain</string>
<string name="module_app_info">Informasi aplikasi</string>
Expand Down Expand Up @@ -200,7 +200,7 @@
<string name="settings_xposed_api_call_protection">Proteksi panggilan API Xposed</string>
<string name="settings_xposed_api_call_protection_summary">Blokir kode modul yang dimuat secara dinamis untuk menggunakan Xposed API, ini mungkin mengganggu beberapa modul namun lebih aman</string>
<!-- Module Repo -->
<string name="module_readme">Readme</string>
<string name="module_readme">Baca aku</string>
<string name="module_releases">Rilis</string>
<string name="module_information">Informasi</string>
<string name="module_information_homepage">Beranda</string>
Expand Down
4 changes: 3 additions & 1 deletion app/src/main/res/values-it/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,11 @@
<string name="system_prop_incorrect"><![CDATA[Alcune proprietà di sistema necessarie sono state eliminate o modificate.<br/>In alcuni casi i moduli potrebbero non funzionare.]]></string>
<string name="need_update">Aggiornamento richiesto</string>
<string name="please_update_summary">Installa la versione più recente di LSPosed</string>
<string name="developer_warning_title">Suggerimenti per lo sviluppatore del modulo</string>
<string name="developer_warning_summary">Disattivare le ottimizzazioni di distribuzione su Android Studio, o utilizzare il comando `gradlew installDebug` per eseguire l\'installazione. Altrimenti l\'apk del modulo non verrà aggiornato.</string>
<string name="info_api_version">Versione API</string>
<string name="info_framework_version">Versione del framework</string>
<string name="info_manager_package_name">Nome del pacchetto manager</string>
<string name="info_manager_package_name">Nome pacchetto del manager</string>
<string name="info_system_version">Versione del sistema</string>
<string name="info_device">Dispositivo</string>
<string name="info_system_abi">ABI del sistema</string>
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/res/values-ko/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,8 @@
<string name="system_prop_incorrect"><![CDATA[일부 필수 시스템 속성이 삭제 또는 수정되었습니다.<br/>모듈은 가끔 무효화될 수 있습니다.]]></string>
<string name="need_update">업데이트가 필요합니다</string>
<string name="please_update_summary">최신 버전으로 LSPosed를 설치해 주세요</string>
<string name="developer_warning_title">모듈 개발자를 위한 팁</string>
<string name="developer_warning_summary">Android Studio 에서 배포 최적화를 비활성화 하거나, 설치할때 \'gradlew installDebug\' 명령어를 사용해주세요. 그렇지 않으면 모듈 APK 가 업데이트되지 않을 것입니다.</string>
<string name="info_api_version">API 버전</string>
<string name="info_framework_version">Framework 버전</string>
<string name="info_manager_package_name">관리자 패키지 이름</string>
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/values-ku/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
<item quantity="other">%d مۆدیول چالاک کراوە</item>
</plurals>
<string name="Logs">لۆگەکان</string>
<string name="Settings">رێکخستن</string>
<string name="Settings">ڕێکخستنەکان</string>
<string name="feedback_or_suggestion">فیدباک یان پێشنیار</string>
<string name="About">دەربارە</string>
<string name="report_issue">پرسی ڕاپۆرت</string>
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/values-pt-rBR/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@
<string name="please_update_summary">Por favor, instale a versão mais recente do LSPosed</string>
<string name="info_api_version">Versão da API</string>
<string name="info_framework_version">Versão do Framework</string>
<string name="info_manager_package_name">Nome do pacote do gestor</string>
<string name="info_manager_package_name">Nome do pacote do gerenciador</string>
<string name="info_system_version">Versão do Sistema</string>
<string name="info_device">Aparelho</string>
<string name="info_system_abi">Interfaces Binárias do Sistema</string>
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/values-ro/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
<string name="module_repo_published_time">Publicat la %s</string>
<string name="module_repo_updated_time">Actualizat la %s</string>
<plurals name="module_repo_upgradable">
<item quantity="one">%d module actualizabile.</item>
<item quantity="one">%d module actualizabil</item>
<item quantity="few">%d module actualizabile</item>
<item quantity="other">%d module actualizabile.</item>
</plurals>
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/res/values-ru/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,8 @@
<string name="system_prop_incorrect"><![CDATA[Неправильные системные настройки.<br/>Некоторые системные настройки нужные для работы удалены или изменены.<br/>Модули могут не работать должным образом]]></string>
<string name="need_update">Требуется обновление</string>
<string name="please_update_summary">Установите последнюю версию LSPosed!</string>
<string name="developer_warning_title">Советы разработчику модулей</string>
<string name="developer_warning_summary">Пожалуйста, отключите оптимизацию развертывания в Android Studio или используйте для установки команду `gradlew installDebug`. Иначе модуль не обновится</string>
<string name="info_api_version">Версия API</string>
<string name="info_framework_version">Версия фреймворк</string>
<string name="info_manager_package_name">Имя пакета менеджера</string>
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/res/values-zh-rCN/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,8 @@
<string name="system_prop_incorrect"><![CDATA[一些必须的系统属性被删除或被修改。<br/>模块可能会随机失效。]]></string>
<string name="need_update">需要更新</string>
<string name="please_update_summary">请安装新版 LSPosed</string>
<string name="developer_warning_title">给模块开发者的提示</string>
<string name="developer_warning_summary">请在 Android Studio 上禁用部署优化,或使用 `gradlew installDebug` 命令进行安装,否则无法更新模块。</string>
<string name="info_api_version">API 版本</string>
<string name="info_framework_version">框架版本</string>
<string name="info_manager_package_name">管理器包名</string>
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,8 @@
<string name="system_prop_incorrect"><![CDATA[Some necessary system properties deleted or modified.<br/>Modules may invalidate occasionally.]]></string>
<string name="need_update">Need to update</string>
<string name="please_update_summary">Please install the latest version of LSPosed</string>
<string name="developer_warning_title">Tips for module developer</string>
<string name="developer_warning_summary">Please disable deploy optimizations on Android Studio, or use `gradlew installDebug` command to install. Otherwise the module apk will not be updated.</string>
<string name="info_api_version">API version</string>
<string name="info_framework_version">Framework version</string>
<string name="info_manager_package_name">Manager package name</string>
Expand Down
6 changes: 4 additions & 2 deletions core/src/main/java/org/lsposed/lspd/core/Startup.java
Original file line number Diff line number Diff line change
Expand Up @@ -32,13 +32,15 @@
import org.lsposed.lspd.hooker.CrashDumpHooker;
import org.lsposed.lspd.hooker.HandleSystemServerProcessHooker;
import org.lsposed.lspd.hooker.LoadedApkCtorHooker;
import org.lsposed.lspd.hooker.LoadedApkGetCLHooker;
import org.lsposed.lspd.hooker.LoadedApkCreateCLHooker;
import org.lsposed.lspd.hooker.OpenDexFileHooker;
import org.lsposed.lspd.impl.LSPosedContext;
import org.lsposed.lspd.impl.LSPosedHelper;
import org.lsposed.lspd.service.ILSPApplicationService;
import org.lsposed.lspd.util.Utils;

import java.util.List;

import dalvik.system.DexFile;
import de.robv.android.xposed.XposedBridge;
import de.robv.android.xposed.XposedInit;
Expand All @@ -57,7 +59,7 @@ private static void startBootstrapHook(boolean isSystem) {
LSPosedHelper.hookConstructor(LoadedApkCtorHooker.class, LoadedApk.class,
ActivityThread.class, ApplicationInfo.class, CompatibilityInfo.class,
ClassLoader.class, boolean.class, boolean.class, boolean.class);
LSPosedHelper.hookMethod(LoadedApkGetCLHooker.class, LoadedApk.class, "getClassLoader");
LSPosedHelper.hookMethod(LoadedApkCreateCLHooker.class, LoadedApk.class, "createOrUpdateClassLoaderLocked", List.class);
LSPosedHelper.hookAllMethods(AttachHooker.class, ActivityThread.class, "attach");
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ public class InlinedMethodCallers {
// callers of Application#attach(Context)
{"android.app.Instrumentation", "newApplication", ClassLoader.class, String.class, Context.class},
{"android.app.Instrumentation", "newApplication", ClassLoader.class, Context.class},
{"android.app.ContextImpl", "getSharedPreferencesPath", String.class}
};

// TODO deprecate this
Expand Down
Loading

0 comments on commit ad6816c

Please sign in to comment.