diff --git a/app/src/main/java/org/autojs/autojs/apkbuilder/ApkBuilder.kt b/app/src/main/java/org/autojs/autojs/apkbuilder/ApkBuilder.kt index 85eb6416..a6455631 100644 --- a/app/src/main/java/org/autojs/autojs/apkbuilder/ApkBuilder.kt +++ b/app/src/main/java/org/autojs/autojs/apkbuilder/ApkBuilder.kt @@ -364,6 +364,8 @@ open class ApkBuilder(apkInputStream: InputStream?, private val outApkFile: File private set var signatureSchemes: String = "V1 + V2" private set + var permissions: List = emptyList() + private set fun ignoreDir(dir: File) = also { ignoredDirs.add(dir) } @@ -389,6 +391,8 @@ open class ApkBuilder(apkInputStream: InputStream?, private val outApkFile: File fun setSignatureSchemes(signatureSchemes: String) = also { this.signatureSchemes = signatureSchemes } + fun setPermissions(permissions: List) = also { this.permissions = permissions } + companion object { @JvmStatic fun fromProjectConfig(projectDir: String?, projectConfig: ProjectConfig) = AppConfig() @@ -412,6 +416,10 @@ open class ApkBuilder(apkInputStream: InputStream?, private val outApkFile: File } } } + + override fun isPermissionRequired(permissionName: String): Boolean { + return mAppConfig.permissions.contains(permissionName) + } } private fun copyLibrariesByConfig(config: AppConfig) { diff --git a/app/src/main/java/org/autojs/autojs/apkbuilder/ManifestEditor.java b/app/src/main/java/org/autojs/autojs/apkbuilder/ManifestEditor.java index 73e5376b..c89317be 100644 --- a/app/src/main/java/org/autojs/autojs/apkbuilder/ManifestEditor.java +++ b/app/src/main/java/org/autojs/autojs/apkbuilder/ManifestEditor.java @@ -88,6 +88,10 @@ public class ManifestEditor { } } + public boolean isPermissionRequired(String permissionName) { + return true; + } + private class MutableAxmlWriter extends AxmlWriter { private class MutableNodeImpl extends AxmlWriter.NodeImpl { @@ -97,6 +101,9 @@ public class ManifestEditor { @Override protected void onAttr(AxmlWriter.Attr a) { + if ("uses-permission".equals(this.name.data) && "name".equals(a.name.data) && a.value instanceof StringItem) { + this.ignore = !ManifestEditor.this.isPermissionRequired(((StringItem) a.value).data); + } ManifestEditor.this.onAttr(a); super.onAttr(a); } diff --git a/app/src/main/java/org/autojs/autojs/ui/project/BuildActivity.java b/app/src/main/java/org/autojs/autojs/ui/project/BuildActivity.java index d3d30440..09ea7065 100644 --- a/app/src/main/java/org/autojs/autojs/ui/project/BuildActivity.java +++ b/app/src/main/java/org/autojs/autojs/ui/project/BuildActivity.java @@ -9,8 +9,10 @@ import android.text.Editable; import android.text.TextUtils; import android.text.util.Linkify; import android.util.Log; +import android.view.Gravity; import android.view.KeyEvent; import android.view.View; +import android.widget.CheckBox; import android.widget.ArrayAdapter; import android.widget.EditText; import android.widget.ImageView; @@ -63,6 +65,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Objects; +import java.util.TreeMap; import java.util.concurrent.atomic.AtomicBoolean; import java.util.function.Function; import java.util.regex.Pattern; @@ -126,6 +129,51 @@ public class BuildActivity extends BaseActivity implements ApkBuilder.ProgressCa add("V3 (Android 9.0+)"); }}; + private final Map SUPPORTED_PERMISSIONS = new TreeMap<>() {{ + put("android.permission.ACCESS_COARSE_LOCATION", R.string.text_permission_access_coarse_location); + put("android.permission.ACCESS_FINE_LOCATION", R.string.text_permission_access_fine_location); + put("android.permission.ACCESS_NETWORK_STATE", R.string.text_permission_access_network_state); + put("android.permission.ACCESS_WIFI_STATE", R.string.text_permission_access_wifi_state); + put("android.permission.BROADCAST_CLOSE_SYSTEM_DIALOGS", R.string.text_permission_broadcast_close_system_dialogs); + put("android.permission.CAPTURE_VIDEO_OUTPUT", R.string.text_permission_capture_video_output); + put("android.permission.DUMP", R.string.text_permission_dump); + put("android.permission.FOREGROUND_SERVICE", R.string.text_permission_foreground_service); + put("android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION", R.string.text_permission_foreground_service_media_projection); + put("android.permission.FOREGROUND_SERVICE_SPECIAL_USE", R.string.text_permission_foreground_service_special_use); + put("android.permission.INTERNET", R.string.text_permission_internet); + put("android.permission.INTERACT_ACROSS_USERS_FULL", R.string.text_permission_interact_across_users_full); + put("android.permission.MANAGE_EXTERNAL_STORAGE", R.string.text_permission_manage_external_storage); + put("android.permission.MANAGE_USERS", R.string.text_permission_manage_users); + put("android.permission.POST_NOTIFICATIONS", R.string.text_permission_post_notifications); + put("android.permission.QUERY_ALL_PACKAGES", R.string.text_permission_query_all_packages); + put("android.permission.READ_EXTERNAL_STORAGE", R.string.text_permission_read_external_storage); + put("android.permission.READ_MEDIA_AUDIO", R.string.text_permission_read_media_audio); + put("android.permission.READ_MEDIA_IMAGES", R.string.text_permission_read_media_images); + put("android.permission.READ_MEDIA_VIDEO", R.string.text_permission_read_media_video); + put("android.permission.READ_PHONE_STATE", R.string.text_permission_read_phone_state); + put("android.permission.READ_PRIVILEGED_PHONE_STATE", R.string.text_permission_read_privileged_phone_state); + put("android.permission.READ_SMS", R.string.text_permission_read_sms); + put("android.permission.RECEIVE_BOOT_COMPLETED", R.string.text_permission_receive_boot_completed); + put("android.permission.RECORD_AUDIO", R.string.text_permission_record_audio); + put("android.permission.REORDER_TASKS", R.string.text_permission_reorder_tasks); + put("android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS", R.string.text_permission_request_ignore_battery_optimizations); + put("android.permission.REQUEST_INSTALL_PACKAGES", R.string.text_permission_request_install_packages); + put("android.permission.SCHEDULE_EXACT_ALARM", R.string.text_permission_schedule_exact_alarm); + put("android.permission.SYSTEM_ALERT_WINDOW", R.string.text_permission_system_alert_window); + put("android.permission.UNLIMITED_TOASTS", R.string.text_permission_unlimited_toasts); + put("android.permission.UNINSTALL_SHORTCUT", R.string.text_permission_uninstall_shortcut); + put("android.permission.USE_EXACT_ALARM", R.string.text_permission_use_exact_alarm); + put("android.permission.VIBRATE", R.string.text_permission_vibrate); + put("android.permission.WAKE_LOCK", R.string.text_permission_wake_lock); + put("android.permission.WRITE_EXTERNAL_STORAGE", R.string.text_permission_write_external_storage); + put("android.permission.WRITE_SECURE_SETTINGS", R.string.text_permission_write_secure_settings); + put("android.permission.WRITE_SETTINGS", R.string.text_permission_write_settings); + put("com.android.launcher.permission.INSTALL_SHORTCUT", R.string.text_permission_install_shortcut); + put("com.android.launcher.permission.UNINSTALL_SHORTCUT", R.string.text_permission_uninstall_shortcut); + put("com.termux.permission.RUN_COMMAND", R.string.text_permission_run_command); + put("moe.shizuku.manager.permission.API_V23", R.string.text_permission_shizuku); + }}; + EditText mSourcePath; View mSourcePathContainer; EditText mOutputPath; @@ -145,6 +193,7 @@ public class BuildActivity extends BaseActivity implements ApkBuilder.ProgressCa private FlexboxLayout mFlexboxLibs; private Spinner mSignatureSchemes; private Spinner mVerifiedKeyStores; + private FlexboxLayout mFlexboxPermissions; private final ArrayList mInvalidAbis = new ArrayList<>(); private final ArrayList mUnavailableAbis = new ArrayList<>(); @@ -225,6 +274,9 @@ public class BuildActivity extends BaseActivity implements ApkBuilder.ProgressCa mVerifiedKeyStores = binding.spinnerVerifiedKeyStores; initVerifiedKeyStoresSpinner(); + mFlexboxPermissions = binding.flexboxPermissions; + initPermissionsChildren(); + binding.fab.setOnClickListener(v -> buildApk()); binding.selectSource.setOnClickListener(v -> selectSourceFilePath()); binding.selectOutput.setOnClickListener(v -> selectOutputDirPath()); @@ -235,6 +287,7 @@ public class BuildActivity extends BaseActivity implements ApkBuilder.ProgressCa }); binding.textLibs.setOnClickListener(v -> toggleAllFlexboxChildren(mFlexboxLibs)); binding.manageKeyStore.setOnClickListener(v -> ManageKeyStoreActivity.Companion.startActivity(this)); + binding.textPermissions.setOnClickListener(v -> toggleAllFlexboxChildren(mFlexboxPermissions)); setToolbarAsBack(R.string.text_build_apk); mSource = getIntent().getStringExtra(EXTRA_SOURCE); @@ -266,6 +319,14 @@ public class BuildActivity extends BaseActivity implements ApkBuilder.ProgressCa isAllChecked = false; break; } + } else if (child instanceof CheckBox) { + if (!child.isEnabled()) { + continue; + } + if (!((CheckBox) child).isChecked()) { + isAllChecked = false; + break; + } } } for (int i = 0; i < mFlexboxLibs.getChildCount(); i += 1) { @@ -275,6 +336,11 @@ public class BuildActivity extends BaseActivity implements ApkBuilder.ProgressCa continue; } ((RoundCheckboxWithText) child).setChecked(!isAllChecked); + } else if (child instanceof CheckBox) { + if (!child.isEnabled()) { + continue; + } + ((CheckBox) child).setChecked(!isAllChecked); } } } @@ -404,6 +470,25 @@ public class BuildActivity extends BaseActivity implements ApkBuilder.ProgressCa }); } + @SuppressLint("SetTextI18n") + private void initPermissionsChildren() { + SUPPORTED_PERMISSIONS.forEach((permission, descriptionResId) -> { + CheckBox checkBox = new CheckBox(this); + checkBox.setLayoutParams(new LinearLayout.LayoutParams( + LinearLayout.LayoutParams.MATCH_PARENT, + LinearLayout.LayoutParams.WRAP_CONTENT)); + checkBox.setAlpha(0.87f); + checkBox.setText(permission + "\n" + getString(descriptionResId)); + checkBox.setButtonDrawable(R.drawable.round_checkbox); + checkBox.setGravity(Gravity.CENTER_VERTICAL); + checkBox.setTextSize(12); + int marginInPixels = (int) (8 * getResources().getDisplayMetrics().density); + checkBox.setPadding(marginInPixels, 0, 0, 0); + checkBox.setChecked(false); + mFlexboxPermissions.addView(checkBox); + }); + } + private boolean isAliasMatching(Map> aliases, String aliasKey, List candidates) { AtomicBoolean result = new AtomicBoolean(false); var aliasList = aliases.getOrDefault(aliasKey, Collections.emptyList()); @@ -682,6 +767,7 @@ public class BuildActivity extends BaseActivity implements ApkBuilder.ProgressCa private ApkBuilder.AppConfig createAppConfig() { ArrayList abis = collectCheckedItems(mFlexboxAbis); ArrayList libs = collectCheckedItems(mFlexboxLibs); + ArrayList permissions = collectCheckedItems(mFlexboxPermissions); ApkBuilder.AppConfig appConfig = mProjectConfig != null ? ApkBuilder.AppConfig.fromProjectConfig(mSource, mProjectConfig) @@ -701,6 +787,7 @@ public class BuildActivity extends BaseActivity implements ApkBuilder.ProgressCa } else { appConfig.setKeyStore(null); } + appConfig.setPermissions(permissions); return appConfig; } @@ -718,6 +805,13 @@ public class BuildActivity extends BaseActivity implements ApkBuilder.ProgressCa libs.add(charSequence.toString()); } } + } else if (child instanceof CheckBox) { + if (((CheckBox) child).isChecked()) { + CharSequence charSequence = ((CheckBox) child).getText(); + if (charSequence != null) { + libs.add(charSequence.toString().split("\n")[0]); + } + } } } return libs; diff --git a/app/src/main/java/pxb/android/axml/AxmlWriter.java b/app/src/main/java/pxb/android/axml/AxmlWriter.java index 0c9f0de5..b814dee1 100644 --- a/app/src/main/java/pxb/android/axml/AxmlWriter.java +++ b/app/src/main/java/pxb/android/axml/AxmlWriter.java @@ -94,6 +94,9 @@ public class AxmlWriter extends AxmlVisitor { int size = 0; for (NodeImpl first : firsts) { + if (first.ignore) { + continue; + } size += first.prepare(this); } int a = 0; @@ -163,6 +166,9 @@ public class AxmlWriter extends AxmlVisitor { } for (NodeImpl first : firsts) { + if (first.ignore) { + continue; + } first.write(out); } @@ -259,10 +265,11 @@ public class AxmlWriter extends AxmlVisitor { Attr clz; protected List children = new ArrayList(); private int line; - private StringItem name; + protected StringItem name; private StringItem ns; private StringItem text; private int textLineNumber; + protected boolean ignore = false; public NodeImpl(String ns, String name) { super(null); @@ -344,6 +351,9 @@ public class AxmlWriter extends AxmlVisitor { int size = 24 + 36 + attrs.size() * 20;// 24 for end tag,36+x*20 for // start tag for (NodeImpl child : children) { + if (child.ignore) { + continue; + } size += child.prepare(axmlWriter); } if (text != null) { @@ -400,6 +410,9 @@ public class AxmlWriter extends AxmlVisitor { // children for (NodeImpl child : children) { + if (child.ignore) { + continue; + } child.write(out); } diff --git a/app/src/main/res/layout/activity_build.xml b/app/src/main/res/layout/activity_build.xml index 18009905..22f6e0d9 100644 --- a/app/src/main/res/layout/activity_build.xml +++ b/app/src/main/res/layout/activity_build.xml @@ -397,6 +397,38 @@ + + + + + + + + تم التحقق بنجاح فشل التحقق مسار الملف + الأذونات المطلوبة + السماح للتطبيق بالوصول إلى حالة الواي فاي + السماح للتطبيق بكتابة البيانات إلى التخزين الخارجي + السماح للتطبيق بقراءة البيانات من التخزين الخارجي + السماح للتطبيق بقراءة ملفات الصور من التخزين المشترك + السماح للتطبيق بقراءة ملفات الفيديو من التخزين المشترك + السماح للتطبيق بقراءة ملفات الصوت من التخزين المشترك + السماح للتطبيق بإدارة جميع الملفات في التخزين الخارجي + السماح للتطبيق بإرسال نية لإغلاق حوارات النظام + السماح للتطبيق بالوصول إلى جميع معلومات حالة الهاتف + السماح للتطبيق بتثبيت اختصار + السماح للتطبيق بإلغاء تثبيت الاختصار + السماح للتطبيق بطلب تثبيت تطبيقات أخرى + السماح للتطبيق بمنع الهاتف من الدخول في وضع السكون + السماح للتطبيق بجدولة المنبهات الدقيقة أو التنبيهات + السماح للتطبيق بجدولة عمليات دقيقة بالوقت + السماح للتطبيق بالتحكم في اهتزاز الهاتف + السماح للتطبيق بالوصول إلى الإنترنت + السماح للتطبيق بمعرفة حالة الاتصال بالشبكة + السماح للتطبيق بالظهور فوق التطبيقات الأخرى + السماح للتطبيق بإعادة ترتيب التطبيقات التي تعمل حالياً + السماح للتطبيق بطلب تجاهل تحسينات البطارية + السماح للتطبيق بتلقي إشعارات عند اكتمال إقلاع الجهاز + السماح للتطبيق بعرض الإشعارات + السماح للتطبيق بتشغيل خدمة في المقدمة + السماح للتطبيق باستخدام تسجيل الشاشة وإسقاط الوسائط في خدمة أمامية + السماح للتطبيق بإجراء عمليات خاصة في خدمة أمامية + السماح للتطبيق بعرض عدد غير محدود من إشعارات التوست + السماح للتطبيق بالتقاط إخراج الفيديو + السماح للتطبيق بتفريغ معلومات النظام + السماح للتطبيق بالاستعلام عن جميع الحزم + السماح للتطبيق بالوصول إلى بيانات استخدام التطبيقات الأخرى + السماح للتطبيق بتعديل إعدادات النظام + السماح للتطبيق بقراءة وكتابة إعدادات النظام الحساسة + السماح للتطبيق بإدارة المستخدمين + السماح للتطبيق بالتفاعل عبر المستخدمين + السماح للتطبيق بالوصول إلى الموقع التقريبي عبر الشبكة + السماح للتطبيق بالحصول على الموقع الدقيق عبر GPS + السماح للتطبيق بتسجيل الصوت + مخصص لتطبيق Termux، السماح بتنفيذ الأوامر + السماح للتطبيق بقراءة حالة الهاتف والهوية + السماح للتطبيق بقراءة الرسائل النصية + السماح للتطبيق بالتفاعل مع النظام من خلال خدمة Shizuku للحصول على صلاحيات أعلى تبديل النافذة إعدادات الرموز مطور مصممة خصيصا diff --git a/app/src/main/res/values-en/strings.xml b/app/src/main/res/values-en/strings.xml index f331d8d5..b7feacf4 100644 --- a/app/src/main/res/values-en/strings.xml +++ b/app/src/main/res/values-en/strings.xml @@ -794,6 +794,49 @@ Verification successful Verification failed File Path + Permissions + Allow the app to access Wi-Fi state + Allow the app to write to external storage + Allow the app to read from external storage + Allow the app to read image files from shared storage + Allow the app to read video files from shared storage + Allow the app to read audio files from shared storage + Allow the app to manage all files in external storage + Allow the app to send an intent to close system dialogs + Allow the app to access all phone state information + Allow the app to install shortcuts + Allow the app to uninstall shortcuts + Allow the app to request installation of other apps + Prevent the phone from going to sleep + Allow the app to schedule exact alarms or event reminders + Allow the app to schedule time-precise operations + Allow the app to control phone vibration + Allow the app to access the internet + Allow the app to view network connection status + Allow the app to display over other apps + Allow the app to reorder running tasks + Allow the app to request ignoring battery optimizations + Allow the app to receive broadcast when device boot completes + Allow the app to post notifications + Allow the app to run foreground services + Allow the app to use screen recording and media projection in foreground services + Allow the app to perform special operations in foreground services + Allow the app to show unlimited Toast notifications + Allow the app to capture video output + Allow the app to dump system information + Allow the app to query all packages + Allow the app to access usage statistics of other apps + Allow the app to modify system settings + Allow the app to read/write secure system settings + Allow the app to manage users + Allow the app to interact across users + Allow the app to access approximate location via network + Allow the app to access precise location via GPS + Allow the app to record audio + Specific to Termux app, allow running commands + Allow the app to read phone state and identity + Allow the app to read SMS + Allow the app to interact with the system with elevated permissions via Shizuku service Switch window Symbols settings Tailor-made developer diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index b8f6f220..1032979b 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -797,6 +797,49 @@ Verificación exitosa Error en la verificación Ruta del archivo + Permisos requeridos + Permitir que la aplicación acceda al estado de Wi-Fi + Permitir que la aplicación escriba en el almacenamiento externo + Permitir que la aplicación lea desde el almacenamiento externo + Permitir que la aplicación lea archivos de imágenes del almacenamiento compartido + Permitir que la aplicación lea archivos de video del almacenamiento compartido + Permitir que la aplicación lea archivos de audio del almacenamiento compartido + Permitir que la aplicación gestione todos los archivos en el almacenamiento externo + Permitir que la aplicación envíe una intención para cerrar los cuadros de diálogo del sistema + Permitir que la aplicación acceda a toda la información del estado del teléfono + Permitir que la aplicación instale accesos directos + Permitir que la aplicación desinstale accesos directos + Permitir que la aplicación solicite la instalación de otras aplicaciones + Evitar que el teléfono entre en modo de suspensión + Permitir que la aplicación programe alarmas exactas o recordatorios de eventos + Permitir que la aplicación programe operaciones precisas por tiempo + Permitir que la aplicación controle la vibración del teléfono + Permitir que la aplicación acceda a Internet + Permitir que la aplicación vea el estado de la conexión de red + Permitir que la aplicación se muestre encima de otras aplicaciones + Permitir que la aplicación reordene tareas en ejecución + Permitir que la aplicación solicite ignorar optimizaciones de batería + Permitir que la aplicación reciba la notificación cuando el dispositivo termine de arrancar + Permitir que la aplicación envíe notificaciones + Permitir que la aplicación ejecute servicios en primer plano + Permitir que la aplicación use grabación de pantalla y proyección de medios en servicios en primer plano + Permitir que la aplicación realice operaciones especiales en servicios en primer plano + Permitir que la aplicación muestre notificaciones de Toast ilimitadas + Permitir que la aplicación capture salida de video + Permitir que la aplicación volcar información del sistema + Permitir que la aplicación consulte todos los paquetes + Permitir que la aplicación acceda a las estadísticas de uso de otras aplicaciones + Permitir que la aplicación modifique los ajustes del sistema + Permitir que la aplicación lea/escriba configuraciones del sistema seguras + Permitir que la aplicación administre usuarios + Permitir que la aplicación interactúe entre usuarios + Permitir que la aplicación acceda a la ubicación aproximada a través de la red + Permitir que la aplicación acceda a la ubicación precisa a través de GPS + Permitir que la aplicación grabe audio + Específico para la aplicación Termux, permitir ejecutar comandos + Permitir que la aplicación lea el estado y la identidad del teléfono + Permitir que la aplicación lea mensajes SMS + Permitir que la aplicación interactúe con el sistema mediante el servicio Shizuku para obtener permisos elevados Cambiar ventana Config de símbolos Desarrollador a medida diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index aee2036f..60beed07 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -797,6 +797,49 @@ Vérification réussie Échec de la vérification Chemin du fichier + Autorisations nécessaires + Autoriser l\'application à accéder à l\'état du Wi-Fi + Autoriser l\'application à écrire dans le stockage externe + Autoriser l\'application à lire à partir du stockage externe + Autoriser l\'application à lire les fichiers image depuis le stockage partagé + Autoriser l\'application à lire les fichiers vidéo depuis le stockage partagé + Autoriser l\'application à lire les fichiers audio depuis le stockage partagé + Autoriser l\'application à gérer tous les fichiers dans le stockage externe + Autoriser l\'application à envoyer une intention pour fermer les boîtes de dialogue système + Autoriser l\'application à accéder à toutes les informations de l\'état du téléphone + Autoriser l\'application à installer des raccourcis + Autoriser l\'application à désinstaller des raccourcis + Autoriser l\'application à demander l\'installation d\'autres applications + Empêcher le téléphone de passer en mode veille + Autoriser l\'application à programmer des alarmes exactes ou des rappels d\'événements + Autoriser l\'application à programmer des opérations précises dans le temps + Autoriser l\'application à contrôler la vibration du téléphone + Autoriser l\'application à accéder à Internet + Autoriser l\'application à consulter l\'état de la connexion réseau + Autoriser l\'application à s\'afficher au-dessus d\'autres applications + Autoriser l\'application à réorganiser les tâches en cours d\'exécution + Autoriser l\'application à demander l\'ignorance des optimisations de la batterie + Autoriser l\'application à recevoir une notification lorsque le démarrage du périphérique est terminé + Autoriser l\'application à afficher des notifications + Autoriser l\'application à exécuter des services en premier plan + Autoriser l\'application à utiliser l\'enregistrement d\'écran et la projection multimédia dans des services en premier plan + Autoriser l\'application à effectuer des opérations spéciales dans des services en premier plan + Autoriser l\'application à afficher un nombre illimité de notifications Toast + Autoriser l\'application à capturer la sortie vidéo + Autoriser l\'application à vider les informations système + Autoriser l\'application à interroger tous les packages + Autoriser l\'application à accéder aux statistiques d\'utilisation d\'autres applications + Autoriser l\'application à modifier les paramètres système + Autoriser l\'application à lire/écrire les paramètres sécurisés du système + Autoriser l\'application à gérer les utilisateurs + Autoriser l\'application à interagir entre utilisateurs + Autoriser l\'application à accéder à une localisation approximative via le réseau + Autoriser l\'application à accéder à une localisation précise via le GPS + Autoriser l\'application à enregistrer de l\'audio + Spécifique à l\'application Termux, autoriser l\'exécution de commandes + Autoriser l\'application à lire l\'état du téléphone et l\'identité + Autoriser l\'application à lire les SMS + Autoriser l\'application à interagir avec le système via le service Shizuku pour obtenir des autorisations élevées Changer de fenêtre Param des symboles Développeur sur mesure diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 2812f827..026e03d0 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -797,6 +797,49 @@ 確認成功 確認失敗 ファイルパス + 必要な権限 + アプリにWi-Fiの状態へのアクセスを許可する + アプリに外部ストレージへの書き込みを許可する + アプリに外部ストレージからの読み取りを許可する + アプリに共有ストレージから画像ファイルの読み取りを許可する + アプリに共有ストレージから動画ファイルの読み取りを許可する + アプリに共有ストレージから音声ファイルの読み取りを許可する + アプリに外部ストレージ内のすべてのファイルを管理する権限を与える + アプリにシステムダイアログを閉じるためのインテントを送信する権限を与える + アプリにすべての電話状態情報にアクセスする権限を与える + アプリにショートカットのインストールを許可する + アプリにショートカットのアンインストールを許可する + アプリに他のアプリのインストールを要求する権限を与える + アプリに電話をスリープ状態にしないようにする権限を与える + アプリに正確なアラームやイベントリマインダーを設定する権限を与える + アプリに時間精度のある操作をスケジュールする権限を与える + アプリに電話の振動を制御する権限を与える + アプリにインターネットにアクセスする権限を与える + アプリにネットワーク接続状態を確認する権限を与える + アプリに他のアプリの上に表示する権限を与える + アプリに実行中のタスクを再配置する権限を与える + アプリにバッテリー最適化を無視するように要求する権限を与える + アプリにデバイス起動完了の通知を受け取る権限を与える + アプリに通知を表示する権限を与える + アプリにフォアグラウンドサービスを実行する権限を与える + アプリにフォアグラウンドサービス内で画面録画とメディアプロジェクションを使用する権限を与える + アプリにフォアグラウンドサービス内で特別な操作を行う権限を与える + アプリに無制限のToast通知を表示する権限を与える + アプリにビデオ出力をキャプチャする権限を与える + アプリにシステム情報をダンプする権限を与える + アプリにすべてのパッケージをクエリする権限を与える + アプリに他のアプリの使用統計情報にアクセスする権限を与える + アプリにシステム設定を変更する権限を与える + アプリにシステムのセキュア設定を読み書きする権限を与える + アプリにユーザー管理を行う権限を与える + アプリにユーザー間でのインタラクションを許可する + アプリにネットワークを使用して粗い位置情報にアクセスする権限を与える + アプリにGPSを使用して正確な位置情報にアクセスする権限を与える + アプリに音声を録音する権限を与える + Termuxアプリに特化したコマンド実行権限を与える + アプリに電話の状態とIDを読み取る権限を与える + アプリにSMSを読み取る権限を与える + アプリにShizukuサービスを通じてシステムと高い権限でインタラクションする権限を与える ウィンドウの切り替え シンボル設定 テーラーメイド開発者 diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index b751a60a..abeb5d40 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -798,6 +798,49 @@ 확인 성공 확인 실패 파일 경로 + 필요한 권한 + 앱이 Wi-Fi 상태에 접근할 수 있도록 허용 + 앱이 외부 저장소에 쓸 수 있도록 허용 + 앱이 외부 저장소를 읽을 수 있도록 허용 + 앱이 공유 저장소의 이미지 파일을 읽을 수 있도록 허용 + 앱이 공유 저장소의 비디오 파일을 읽을 수 있도록 허용 + 앱이 공유 저장소의 오디오 파일을 읽을 수 있도록 허용 + 앱이 외부 저장소의 모든 파일을 관리할 수 있도록 허용 + 앱이 시스템 대화상자를 닫기 위한 인텐트를 보낼 수 있도록 허용 + 앱이 모든 전화 상태 정보를 읽을 수 있도록 허용 + 앱이 바로가기를 설치할 수 있도록 허용 + 앱이 바로가기를 삭제할 수 있도록 허용 + 앱이 다른 앱 설치를 요청할 수 있도록 허용 + 앱이 전화기를 절전 모드로 진입하지 않도록 방지 + 앱이 정확한 알람이나 이벤트 알림을 설정할 수 있도록 허용 + 앱이 시간 정확한 작업을 예약할 수 있도록 허용 + 앱이 전화기 진동을 제어할 수 있도록 허용 + 앱이 인터넷에 접근할 수 있도록 허용 + 앱이 네트워크 상태를 확인할 수 있도록 허용 + 앱이 다른 앱 위에 표시될 수 있도록 허용 + 앱이 실행 중인 작업을 재배치할 수 있도록 허용 + 앱이 배터리 최적화를 무시하도록 요청할 수 있도록 허용 + 앱이 장치 부팅 완료 시 브로드캐스트를 받을 수 있도록 허용 + 앱이 알림을 게시할 수 있도록 허용 + 앱이 포그라운드 서비스를 실행할 수 있도록 허용 + 앱이 포그라운드 서비스에서 화면 캡처와 미디어 투영 기능을 사용할 수 있도록 허용 + 앱이 포그라운드 서비스에서 특별한 작업을 수행할 수 있도록 허용 + 앱이 무제한으로 Toast 알림을 표시할 수 있도록 허용 + 앱이 비디오 출력을 캡처할 수 있도록 허용 + 앱이 시스템 정보를 덤프할 수 있도록 허용 + 앱이 모든 패키지를 쿼리할 수 있도록 허용 + 앱이 다른 앱의 사용 통계를 볼 수 있도록 허용 + 앱이 시스템 설정을 수정할 수 있도록 허용 + 앱이 시스템 보안 설정을 읽고 쓸 수 있도록 허용 + 앱이 사용자 관리를 할 수 있도록 허용 + 앱이 사용자 간 상호작용을 할 수 있도록 허용 + 앱이 네트워크를 통해 대략적인 위치에 접근할 수 있도록 허용 + 앱이 GPS를 통해 정확한 위치에 접근할 수 있도록 허용 + 앱이 오디오를 녹음할 수 있도록 허용 + Termux 앱에 대해 명령을 실행할 수 있도록 허용 + 앱이 전화 상태 및 신원을 읽을 수 있도록 허용 + 앱이 SMS를 읽을 수 있도록 허용 + 앱이 Shizuku 서비스를 통해 시스템과 상호작용할 수 있도록 허용 창 전환 기호 설정 맞춤형 개발자 diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 6a0315f4..5c70619e 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -797,6 +797,49 @@ Проверка успешна Ошибка проверки Путь к файлу + Требуемые разрешения + Разрешить приложению доступ к состоянию Wi-Fi + Разрешить приложению записывать на внешнее хранилище + Разрешить приложению читать с внешнего хранилища + Разрешить приложению читать изображения из общего хранилища + Разрешить приложению читать видеофайлы из общего хранилища + Разрешить приложению читать аудиофайлы из общего хранилища + Разрешить приложению управлять всеми файлами на внешнем хранилище + Разрешить приложению отправить намерение для закрытия системных диалогов + Разрешить приложению доступ ко всем данным состояния телефона + Разрешить приложению устанавливать ярлыки + Разрешить приложению удалять ярлыки + Разрешить приложению запрашивать установку других приложений + Предотвратить переход устройства в спящий режим + Разрешить приложению устанавливать точные будильники или напоминания + Разрешить приложению планировать точные операции по времени + Разрешить приложению управлять вибрацией устройства + Разрешить приложению доступ в Интернет + Разрешить приложению проверять состояние сетевого подключения + Разрешить приложению отображаться поверх других приложений + Разрешить приложению изменять порядок работающих задач + Разрешить приложению запросить игнорирование оптимизаций батареи + Разрешить приложению получать уведомления при завершении загрузки устройства + Разрешить приложению отображать уведомления + Разрешить приложению запускать сервисы в фоновом режиме + Разрешить приложению использовать запись экрана и медиапроекцию в фоновом сервисе + Разрешить приложению выполнять специальные операции в фоновом сервисе + Разрешить приложению показывать неограниченное количество уведомлений Toast + Разрешить приложению захватывать видеовыход + Разрешить приложению выгружать системные данные + Разрешить приложению запрашивать все пакеты + Разрешить приложению доступ к статистике использования других приложений + Разрешить приложению изменять настройки системы + Разрешить приложению читать/записывать защищенные настройки системы + Разрешить приложению управлять пользователями + Разрешить приложению взаимодействовать между пользователями + Разрешить приложению доступ к неточной геопозиции через сеть + Разрешить приложению доступ к точной геопозиции через GPS + Разрешить приложению записывать звук + Для приложения Termux разрешить выполнение команд + Разрешить приложению читать состояние телефона и его идентификатор + Разрешить приложению читать SMS-сообщения + Разрешить приложению взаимодействовать с системой через сервис Shizuku для получения повышенных прав Переключить окно Настройки символов Индивидуальный разработчик diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml index 367cf440..22a91a6c 100644 --- a/app/src/main/res/values-zh-rHK/strings.xml +++ b/app/src/main/res/values-zh-rHK/strings.xml @@ -796,6 +796,49 @@ 驗證成功 驗證失敗 文件路徑 + 所需的權限 + 允許應用程式訪問Wi-Fi狀態 + 允許應用程式寫入外部儲存 + 允許應用程式讀取外部儲存 + 允許應用程式讀取共享儲存中的圖片檔案 + 允許應用程式讀取共享儲存中的視頻檔案 + 允許應用程式讀取共享儲存中的音頻檔案 + 允許應用程式管理外部儲存中的所有檔案 + 允許應用程式發送意圖來關閉系統對話框 + 允許應用程式訪問所有電話狀態資訊 + 允許應用程式安裝快捷方式 + 允許應用程式卸載快捷方式 + 允許應用程式請求安裝其他應用程式 + 防止手機進入休眠狀態 + 允許應用程式安排精確的鬧鐘或事件提醒 + 允許應用程式安排時間精確的操作 + 控制手機震動 + 允許應用程式訪問網路 + 允許應用程式查看網路連接狀態 + 允許應用程式在其他應用程式上面顯示 + 允許應用程式對正在運行的應用程式重新排序 + 允許應用程式請求忽略電池優化 + 允許應用程式在設備啟動時接收廣播 + 允許應用程式顯示通知 + 允許應用程式運行前景服務 + 允許應用程式在前景服務中使用螢幕錄製和媒體投影功能 + 允許應用程式在前景服務中執行一些特殊操作 + 允許應用程式顯示無限數量的Toast通知 + 允許應用程式捕獲視頻輸出 + 允許應用程式轉儲系統資訊 + 允許應用程式查詢所有軟件包 + 允許應用程式訪問其他應用程式的使用統計數據 + 允許應用程式修改系統設定 + 允許應用程式讀寫系統敏感設定 + 允許應用程式管理使用者 + 允許應用程式跨使用者互動 + 允許應用程式通過網路訪問粗略的位置信息 + 允許應用程式通過GPS獲取精確的位置信息 + 允許應用程式錄音 + 特定於Termux應用程式,允許執行命令 + 允許應用程式讀取手機狀態和身份 + 允許應用程式讀取簡訊 + 允許應用程式通過Shizuku服務與系統進行更高權限的交互 切換窗口 符號設置 二次開發者 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 810ab5fb..7506ea93 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -796,6 +796,49 @@ 驗證成功 驗證失敗 檔案路徑 + 所需的權限 + 允許應用程式訪問Wi-Fi狀態 + 允許應用程式寫入外部儲存 + 允許應用程式讀取外部儲存 + 允許應用程式讀取共享儲存中的圖片檔案 + 允許應用程式讀取共享儲存中的影片檔案 + 允許應用程式讀取共享儲存中的音頻檔案 + 允許應用程式管理外部儲存中的所有檔案 + 允許應用程式發送意圖來關閉系統對話框 + 允許應用程式訪問所有電話狀態資訊 + 允許應用程式安裝快捷方式 + 允許應用程式卸載快捷方式 + 允許應用程式請求安裝其他應用程式 + 防止手機進入休眠狀態 + 允許應用程式安排精確的鬧鐘或事件提醒 + 允許應用程式安排時間精確的操作 + 控制手機震動 + 允許應用程式訪問網路 + 允許應用程式查看網路連接狀態 + 允許應用程式顯示在其他應用程式上層 + 允許應用程式對正在運行的應用程式重新排序 + 允許應用程式請求忽略電池優化 + 允許應用程式在設備啟動時接收廣播 + 允許應用程式顯示通知 + 允許應用程式運行前景服務 + 允許應用程式在前景服務中使用螢幕錄製和媒體投影功能 + 允許應用程式在前景服務中執行一些特殊操作 + 允許應用程式顯示無限數量的Toast通知 + 允許應用程式捕獲視頻輸出 + 允許應用程式轉儲系統資訊 + 允許應用程式查詢所有軟件包 + 允許應用程式訪問其他應用程式的使用統計數據 + 允許應用程式修改系統設定 + 允許應用程式讀寫系統敏感設定 + 允許應用程式管理使用者 + 允許應用程式跨使用者互動 + 允許應用程式通過網路訪問粗略的位置信息 + 允許應用程式通過GPS獲取精確的位置信息 + 允許應用程式錄音 + 特定於Termux應用程式,允許執行命令 + 允許應用程式讀取手機狀態和身份 + 允許應用程式讀取簡訊 + 允許應用程式通過Shizuku服務與系統進行更高權限的交互 切換視窗 符號設定 二次開發者 diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index ae19f469..98ade9a5 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -792,6 +792,49 @@ 验证成功 验证失败 文件路径 + 需要的权限 + 允许应用访问Wi-Fi状态 + 允许应用写入外部存储 + 允许应用读取外部存储 + 允许应用读取共享存储中的图片文件 + 允许应用读取共享存储中的视频文件 + 允许应用读取共享存储中的音频文件 + 允许应用管理外部存储中的所有文件 + 允许应用发送一个意图来关闭系统对话框 + 允许应用访问所有电话状态信息 + 允许应用安装快捷方式 + 允许应用卸载快捷方式 + 允许应用请求安装其他应用 + 防止手机进入休眠状态 + 允许应用安排精确的闹钟或事件提醒 + 允许应用安排时间精确的操作 + 控制手机振动 + 允许应用访问网络 + 允许应用查看网络连接状态 + 允许应用显示在其他应用的上层 + 允许应用对正在运行的应用重新排序 + 允许应用请求忽略电池优化 + 允许应用在设备启动时接收广播 + 允许应用显示通知 + 允许应用运行前台服务 + 允许应用在前台服务中使用屏幕录制和媒体投影功能 + 允许应用在前台服务中执行一些特殊操作 + 允许应用显示无限数量的Toast通知 + 允许应用捕获视频输出 + 允许应用转储系统信息 + 允许应用查询所有软件包 + 允许应用访问其他应用的使用统计数据 + 允许应用修改系统设置 + 允许应用读写系统敏感设置 + 允许应用管理用户 + 允许应用跨用户交互 + 允许应用通过网络访问粗略的位置信息 + 允许应用通过GPS获取精确的位置信息 + 允许应用录音 + 特定于Termux应用,允许运行命令 + 允许应用读取手机状态和身份 + 允许应用读取短信 + 允许应用通过 Shizuku 服务与系统进行更高权限的交互 切换窗口 符号设置 二次开发者 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 36c69fea..d1635944 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1011,6 +1011,49 @@ Verification successful Verification failed File Path + Permissions + Allow the app to access Wi-Fi state + Allow the app to write to external storage + Allow the app to read from external storage + Allow the app to read image files from shared storage + Allow the app to read video files from shared storage + Allow the app to read audio files from shared storage + Allow the app to manage all files in external storage + Allow the app to send an intent to close system dialogs + Allow the app to access all phone state information + Allow the app to install shortcuts + Allow the app to uninstall shortcuts + Allow the app to request installation of other apps + Prevent the phone from going to sleep + Allow the app to schedule exact alarms or event reminders + Allow the app to schedule time-precise operations + Allow the app to control phone vibration + Allow the app to access the internet + Allow the app to view network connection status + Allow the app to display over other apps + Allow the app to reorder running tasks + Allow the app to request ignoring battery optimizations + Allow the app to receive broadcast when device boot completes + Allow the app to post notifications + Allow the app to run foreground services + Allow the app to use screen recording and media projection in foreground services + Allow the app to perform special operations in foreground services + Allow the app to show unlimited Toast notifications + Allow the app to capture video output + Allow the app to dump system information + Allow the app to query all packages + Allow the app to access usage statistics of other apps + Allow the app to modify system settings + Allow the app to read/write secure system settings + Allow the app to manage users + Allow the app to interact across users + Allow the app to access approximate location via network + Allow the app to access precise location via GPS + Allow the app to record audio + Specific to Termux app, allow running commands + Allow the app to read phone state and identity + Allow the app to read SMS + Allow the app to interact with the system with elevated permissions via Shizuku service Switch window Symbols settings Tailor-made developer