Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion core
Submodule core updated from 9d6d44 to 35b510
1 change: 1 addition & 0 deletions manager/src/main/java/org/lsposed/lspatch/Patcher.kt
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ object Patcher {
.extractNativeLibs(if (extractNativeLibs) true else null)
.usesCleartextTraffic(if (usesCleartextTraffic) true else null)
.permissions(addedPermissions)
.injectDocumentsProvider(injectDocumentsProvider)
.build()
)
.keystore(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,9 @@ data class PatchRequest(
// Extra uses-permission names, already canonical. Recorded in the patched app's config, unlike
// the overrides above, so a re-patch that only recovers the original apks still keeps them.
val addedPermissions: List<String> = emptyList(),
// Inject a DocumentsProvider exposing the app's private data. Recorded in the config for the same
// reason as the permissions above.
val injectDocumentsProvider: Boolean = false,
val origin: PatchOrigin = PatchOrigin.New,
) {
val packageName: String get() = target.packageName
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ object PatchReport {
add("Version code ${request.versionCodeOverride?.toString() ?: "app's own"}")
add("Inject dex ${request.injectDex}")
add("Added perms ${if (request.addedPermissions.isEmpty()) "none" else request.addedPermissions.joinToString(", ")}")
add("Docs provider ${request.injectDocumentsProvider}")
add("Keystore ${if (MyKeyStore.useDefault) "built-in" else "custom (${MyKeyStore.file.name})"}")
add("Verbose ${Configs.detailPatchLogs}")
add("")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -343,6 +343,7 @@ fun NewPatchScreen(
onCleartext = viewModel::setUsesCleartextTraffic,
onAddPermission = viewModel::addPermission,
onRemovePermission = viewModel::removePermission,
onInjectDocumentsProvider = viewModel::setInjectDocumentsProvider,
)
else -> Column(
Modifier
Expand Down Expand Up @@ -390,6 +391,7 @@ private fun ConfigureBody(
onCleartext: (Boolean) -> Unit,
onAddPermission: (String) -> Unit,
onRemovePermission: (String) -> Unit,
onInjectDocumentsProvider: (Boolean) -> Unit,
) {
val scope = rememberCoroutineScope()
val snackbarHost = LocalSnackbarHost.current
Expand Down Expand Up @@ -590,6 +592,15 @@ private fun ConfigureBody(
checked = request.usesCleartextTraffic,
onCheckedChange = onCleartext,
)
ToggleRow(
title = stringResource(R.string.patch_manifest_documents_provider),
icon = Icons.Rounded.FolderOpen,
subtitle = stringResource(R.string.patch_manifest_documents_provider_desc),
checked = request.injectDocumentsProvider,
onCheckedChange = onInjectDocumentsProvider,
)
// Last of the manifest controls: its chip list and field are the tallest thing here,
// so it sits below the compact toggles rather than pushing them down the screen.
PermissionEditor(
added = request.addedPermissions,
onAdd = onAddPermission,
Expand Down Expand Up @@ -770,6 +781,9 @@ private fun advancedChips(request: PatchRequest): List<OptionChipData> = buildLi
)
)
}
if (request.injectDocumentsProvider) {
add(OptionChipData(stringResource(R.string.patch_manifest_documents_provider), true, Icons.Rounded.FolderOpen))
}
if (!MyKeyStore.useDefault) {
add(OptionChipData(stringResource(R.string.settings_keystore_custom), true, Icons.Outlined.Ballot))
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ suspend fun rePatchRequestFor(
versionCodeOverride = config?.versionCode,
// Recovered from the recorded config, not the original apks -- those never carried them.
addedPermissions = config?.addedPermissions?.toList() ?: emptyList(),
injectDocumentsProvider = config?.injectDocumentsProvider ?: false,
sigBypassLevel = config?.sigBypassLevel ?: 2,
injectDex = config?.injectDex ?: false,
modules = modules ?: embedded,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,9 @@ class NewPatchViewModel(savedStateHandle: SavedStateHandle) : ViewModel() {
fun removePermission(name: String) =
mutate { it.copy(addedPermissions = it.addedPermissions - name) }

fun setInjectDocumentsProvider(value: Boolean) =
mutate { it.copy(injectDocumentsProvider = value) }

/**
* Adds modules to the set, keeping what is already there.
*
Expand Down
2 changes: 2 additions & 0 deletions manager/src/main/res/values-ar/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,8 @@
<string name="patch_manifest_permissions_add">إضافة</string>
<string name="patch_manifest_permissions_remove">إزالة</string>
<string name="patch_manifest_permissions_count">أُضيف %1$d</string>
<string name="patch_manifest_documents_provider">إتاحة البيانات الخاصة</string>
<string name="patch_manifest_documents_provider_desc">أضف موفّرًا يتيح لمدير الملفات تصفح مجلد البيانات الخاصة بالتطبيق عبر منتقي ملفات النظام، دون الحاجة إلى روت. يوسّع ما يمكنه الوصول إلى بيانات التطبيق — اتركه معطّلًا ما لم تحتَجه.</string>
<string name="patch_select_target">اختر تطبيقًا لترقيعه</string>
<string name="patch_target_loading">جارٍ تحميل التطبيقات المثبَّتة…</string>
<string name="patch_target_already_patched">مُصحَّح بالفعل</string>
Expand Down
2 changes: 2 additions & 0 deletions manager/src/main/res/values-de/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,8 @@
<string name="patch_manifest_permissions_add">Hinzufügen</string>
<string name="patch_manifest_permissions_remove">Entfernen</string>
<string name="patch_manifest_permissions_count">%1$d hinzugefügt</string>
<string name="patch_manifest_documents_provider">Private Daten freigeben</string>
<string name="patch_manifest_documents_provider_desc">Fügt einen Provider hinzu, damit ein Dateimanager den privaten Datenordner der App über die System-Dateiauswahl durchsuchen kann – ohne Root. Erweitert, wer an die App-Daten gelangt – lass es aus, wenn du es nicht brauchst.</string>
<string name="patch_select_target">Wähle eine App zum Patchen</string>
<string name="patch_target_loading">Installierte Apps werden geladen…</string>
<string name="patch_target_already_patched">Bereits gepatcht</string>
Expand Down
2 changes: 2 additions & 0 deletions manager/src/main/res/values-es/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,8 @@
<string name="patch_manifest_permissions_add">Añadir</string>
<string name="patch_manifest_permissions_remove">Quitar</string>
<string name="patch_manifest_permissions_count">%1$d añadidos</string>
<string name="patch_manifest_documents_provider">Exponer datos privados</string>
<string name="patch_manifest_documents_provider_desc">Añade un proveedor para que un gestor de archivos pueda explorar la carpeta de datos privados de la app desde el selector de archivos del sistema, sin root. Amplía lo que puede acceder a los datos de la app: déjalo desactivado salvo que lo necesites.</string>
<string name="patch_select_target">Elige una aplicación para parchear</string>
<string name="patch_target_loading">Cargando las aplicaciones instaladas…</string>
<string name="patch_target_already_patched">Ya parcheada</string>
Expand Down
2 changes: 2 additions & 0 deletions manager/src/main/res/values-fa/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,8 @@
<string name="patch_manifest_permissions_add">افزودن</string>
<string name="patch_manifest_permissions_remove">حذف</string>
<string name="patch_manifest_permissions_count">%1$d افزوده شد</string>
<string name="patch_manifest_documents_provider">نمایش داده‌های خصوصی</string>
<string name="patch_manifest_documents_provider_desc">یک ارائه‌دهنده اضافه می‌کند تا یک مدیر فایل بتواند پوشهٔ دادهٔ خصوصی برنامه را از طریق انتخابگر فایل سیستم مرور کند، بدون نیاز به روت. دامنهٔ دسترسی به دادهٔ برنامه را گسترده می‌کند — اگر لازم ندارید خاموش بگذارید.</string>
<string name="patch_select_target">برنامه‌ای برای پچ انتخاب کنید</string>
<string name="patch_target_loading">در حال بارگذاری برنامه‌های نصب‌شده…</string>
<string name="patch_target_already_patched">قبلاً وصله شده</string>
Expand Down
2 changes: 2 additions & 0 deletions manager/src/main/res/values-fr/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,8 @@
<string name="patch_manifest_permissions_add">Ajouter</string>
<string name="patch_manifest_permissions_remove">Retirer</string>
<string name="patch_manifest_permissions_count">%1$d ajoutée(s)</string>
<string name="patch_manifest_documents_provider">Exposer les données privées</string>
<string name="patch_manifest_documents_provider_desc">Ajoute un fournisseur pour qu\'un gestionnaire de fichiers puisse parcourir le dossier de données privées de l\'application via le sélecteur de fichiers du système, sans root. Élargit ce qui peut accéder aux données de l\'application — à laisser désactivé sauf besoin.</string>
<string name="patch_select_target">Choisir une application à patcher</string>
<string name="patch_target_loading">Chargement des applications installées…</string>
<string name="patch_target_already_patched">Déjà patchée</string>
Expand Down
2 changes: 2 additions & 0 deletions manager/src/main/res/values-in/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,8 @@
<string name="patch_manifest_permissions_add">Tambah</string>
<string name="patch_manifest_permissions_remove">Hapus</string>
<string name="patch_manifest_permissions_count">%1$d ditambahkan</string>
<string name="patch_manifest_documents_provider">Ekspos data pribadi</string>
<string name="patch_manifest_documents_provider_desc">Menambahkan penyedia agar pengelola berkas bisa menjelajahi folder data pribadi aplikasi lewat pemilih berkas sistem, tanpa root. Memperluas apa yang bisa menjangkau data aplikasi — biarkan mati kecuali Anda memerlukannya.</string>
<string name="patch_select_target">Pilih aplikasi untuk ditambal</string>
<string name="patch_target_loading">Memuat aplikasi terpasang…</string>
<string name="patch_target_already_patched">Sudah ditambal</string>
Expand Down
2 changes: 2 additions & 0 deletions manager/src/main/res/values-it/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,8 @@
<string name="patch_manifest_permissions_add">Aggiungi</string>
<string name="patch_manifest_permissions_remove">Rimuovi</string>
<string name="patch_manifest_permissions_count">%1$d aggiunte</string>
<string name="patch_manifest_documents_provider">Esponi i dati privati</string>
<string name="patch_manifest_documents_provider_desc">Aggiunge un provider così un file manager può sfogliare la cartella dei dati privati dell\'app dal selettore file di sistema, senza root. Amplia ciò che può raggiungere i dati dell\'app: lascialo disattivato se non ti serve.</string>
<string name="patch_select_target">Scegli un\'app a cui applicare la patch</string>
<string name="patch_target_loading">Caricamento delle app installate…</string>
<string name="patch_target_already_patched">Già patchata</string>
Expand Down
2 changes: 2 additions & 0 deletions manager/src/main/res/values-iw/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,8 @@
<string name="patch_manifest_permissions_add">הוסף</string>
<string name="patch_manifest_permissions_remove">הסר</string>
<string name="patch_manifest_permissions_count">%1$d נוספו</string>
<string name="patch_manifest_documents_provider">חשיפת נתונים פרטיים</string>
<string name="patch_manifest_documents_provider_desc">מוסיף ספק כדי שמנהל קבצים יוכל לעיין בתיקיית הנתונים הפרטיים של האפליקציה דרך בורר הקבצים של המערכת, בלי רוט. מרחיב את מה שיכול להגיע לנתוני האפליקציה — השאר כבוי אלא אם צריך.</string>
<string name="patch_select_target">בחרו אפליקציה להחלת טלאי</string>
<string name="patch_target_loading">טוען אפליקציות מותקנות…</string>
<string name="patch_target_already_patched">כבר עבר טלאי</string>
Expand Down
2 changes: 2 additions & 0 deletions manager/src/main/res/values-ja/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,8 @@
<string name="patch_manifest_permissions_add">追加</string>
<string name="patch_manifest_permissions_remove">削除</string>
<string name="patch_manifest_permissions_count">%1$d 件追加</string>
<string name="patch_manifest_documents_provider">非公開データを公開</string>
<string name="patch_manifest_documents_provider_desc">プロバイダーを追加し、ルート権限なしでシステムのファイル選択画面からアプリの非公開データフォルダーをファイルマネージャーで閲覧できるようにします。アプリのデータにアクセスできる範囲が広がるため、必要でなければオフのままにしてください。</string>
<string name="patch_select_target">パッチするアプリを選択</string>
<string name="patch_target_loading">インストール済みのアプリを読み込み中…</string>
<string name="patch_target_already_patched">パッチ済み</string>
Expand Down
2 changes: 2 additions & 0 deletions manager/src/main/res/values-ko/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,8 @@
<string name="patch_manifest_permissions_add">추가</string>
<string name="patch_manifest_permissions_remove">제거</string>
<string name="patch_manifest_permissions_count">%1$d개 추가됨</string>
<string name="patch_manifest_documents_provider">비공개 데이터 노출</string>
<string name="patch_manifest_documents_provider_desc">프로바이더를 추가해 루트 없이 시스템 파일 선택기를 통해 파일 관리자가 앱의 비공개 데이터 폴더를 탐색할 수 있게 합니다. 앱 데이터에 접근할 수 있는 범위가 넓어지므로 필요하지 않으면 꺼 두세요.</string>
<string name="patch_select_target">패치할 앱 선택</string>
<string name="patch_target_loading">설치된 앱을 불러오는 중…</string>
<string name="patch_target_already_patched">이미 패치됨</string>
Expand Down
2 changes: 2 additions & 0 deletions manager/src/main/res/values-pl/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,8 @@
<string name="patch_manifest_permissions_add">Dodaj</string>
<string name="patch_manifest_permissions_remove">Usuń</string>
<string name="patch_manifest_permissions_count">Dodano %1$d</string>
<string name="patch_manifest_documents_provider">Udostępnij dane prywatne</string>
<string name="patch_manifest_documents_provider_desc">Dodaje dostawcę, aby menedżer plików mógł przeglądać folder prywatnych danych aplikacji przez systemowy wybór plików, bez roota. Poszerza to, co może sięgnąć do danych aplikacji — zostaw wyłączone, jeśli nie potrzebujesz.</string>
<string name="patch_select_target">Wybierz aplikację do zmodyfikowania</string>
<string name="patch_target_loading">Wczytywanie zainstalowanych aplikacji…</string>
<string name="patch_target_already_patched">Już załatane</string>
Expand Down
2 changes: 2 additions & 0 deletions manager/src/main/res/values-pt-rBR/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,8 @@
<string name="patch_manifest_permissions_add">Adicionar</string>
<string name="patch_manifest_permissions_remove">Remover</string>
<string name="patch_manifest_permissions_count">%1$d adicionadas</string>
<string name="patch_manifest_documents_provider">Expor dados privados</string>
<string name="patch_manifest_documents_provider_desc">Adiciona um provedor para que um gerenciador de arquivos possa navegar na pasta de dados privados do app pelo seletor de arquivos do sistema, sem root. Amplia o que pode acessar os dados do app — deixe desligado, a menos que precise.</string>
<string name="patch_select_target">Escolha um app para aplicar o patch</string>
<string name="patch_target_loading">Carregando os apps instalados…</string>
<string name="patch_target_already_patched">Já com patch</string>
Expand Down
2 changes: 2 additions & 0 deletions manager/src/main/res/values-ru/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,8 @@
<string name="patch_manifest_permissions_add">Добавить</string>
<string name="patch_manifest_permissions_remove">Удалить</string>
<string name="patch_manifest_permissions_count">Добавлено: %1$d</string>
<string name="patch_manifest_documents_provider">Открыть личные данные</string>
<string name="patch_manifest_documents_provider_desc">Добавляет провайдера, чтобы файловый менеджер мог просматривать папку личных данных приложения через системный выбор файлов, без root. Расширяет круг того, что может добраться до данных приложения — оставьте выключенным, если не нужно.</string>
<string name="patch_select_target">Выберите приложение для патча</string>
<string name="patch_target_loading">Загрузка установленных приложений…</string>
<string name="patch_target_already_patched">Уже пропатчено</string>
Expand Down
2 changes: 2 additions & 0 deletions manager/src/main/res/values-tr/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,8 @@
<string name="patch_manifest_permissions_add">Ekle</string>
<string name="patch_manifest_permissions_remove">Kaldır</string>
<string name="patch_manifest_permissions_count">%1$d eklendi</string>
<string name="patch_manifest_documents_provider">Özel verileri aç</string>
<string name="patch_manifest_documents_provider_desc">Bir sağlayıcı ekler; böylece bir dosya yöneticisi, root olmadan sistem dosya seçici üzerinden uygulamanın özel veri klasörüne göz atabilir. Uygulama verilerine erişebilecekleri genişletir — gerekmiyorsa kapalı bırakın.</string>
<string name="patch_select_target">Yamalanacak uygulamayı seçin</string>
<string name="patch_target_loading">Kurulu uygulamalar yükleniyor…</string>
<string name="patch_target_already_patched">Zaten yamalı</string>
Expand Down
2 changes: 2 additions & 0 deletions manager/src/main/res/values-uk/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,8 @@
<string name="patch_manifest_permissions_add">Додати</string>
<string name="patch_manifest_permissions_remove">Вилучити</string>
<string name="patch_manifest_permissions_count">Додано: %1$d</string>
<string name="patch_manifest_documents_provider">Відкрити приватні дані</string>
<string name="patch_manifest_documents_provider_desc">Додає постачальника, щоб файловий менеджер міг переглядати теку приватних даних застосунку через системний вибір файлів, без root. Розширює те, що може дістатися до даних застосунку — лишіть вимкненим, якщо не потрібно.</string>
<string name="patch_select_target">Виберіть застосунок для патчу</string>
<string name="patch_target_loading">Завантаження встановлених застосунків…</string>
<string name="patch_target_already_patched">Уже пропатчено</string>
Expand Down
2 changes: 2 additions & 0 deletions manager/src/main/res/values-vi/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,8 @@
<string name="patch_manifest_permissions_add">Thêm</string>
<string name="patch_manifest_permissions_remove">Xóa</string>
<string name="patch_manifest_permissions_count">Đã thêm %1$d</string>
<string name="patch_manifest_documents_provider">Hiển thị dữ liệu riêng</string>
<string name="patch_manifest_documents_provider_desc">Thêm một provider để trình quản lý tệp có thể duyệt thư mục dữ liệu riêng của ứng dụng qua bộ chọn tệp hệ thống, không cần root. Mở rộng những gì có thể tiếp cận dữ liệu ứng dụng — hãy tắt trừ khi bạn cần.</string>
<string name="patch_select_target">Chọn ứng dụng để vá</string>
<string name="patch_target_loading">Đang tải ứng dụng đã cài…</string>
<string name="patch_target_already_patched">Đã vá</string>
Expand Down
Loading
Loading