diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index fba4c3ca7..35a812904 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -73,7 +73,19 @@ Error descargando archivo Actualización de Magisk disponible! Actualización de Magisk Manager disponible! - + + + Pulse para descargar e instalar + Descargar sólo el archivo ZIP + Instalación Directa (Recomendado) + Instalar en ranura inactiva (después de OTA) + ¡Se forzará su dispositivo para que arranque en la ranura inactiva actual después de un reinicio!\nUtilice esta opción solo después de que se haya completado la OTA.\nContinuar? + Seleccionar Método + Configuración Adicional + Seleccionar y parchear un archivo + Seleccione una imagen raw (* .img) o un archivo tar de ODIN (* .tar) + Reiniciando en 5 segundos… + Cerrar Instalar %1$s @@ -84,28 +96,24 @@ Notas de lanzamiento Caché del repositorio limpiada El zip es almacenado en:\n[Internal Storage]%1$s - Pulse para descargar e instalar + DTBO fue parchado! Magisk Manager ha parcheado dtbo.img, por favor reinicia Flasheando Ocultando Magisk Manager… La Ocultación de Magisk Manager ha fallado… No se encontró ninguna aplicación para abrir el enlace… - Descargar sólo el archivo ZIP - Instalación Directa (Recomendado) - Instalar en ranura inactiva (después de OTA) - Seleccionar Método + Advertencia Desinstalación completa Restaurar imágenes + Restaurando … ¡Restauración Terminada! - Restaurando … ¡El respaldo de la imagen boot Stock no existe! Descargar Código Propietario Magisk Manager es un Software Libre por lo que no contiene el código API de SafetyNet (Código Propietario de Google).\n\n ¿Puede permitir que Magisk Manager descargue una extensión (contiene el GoogleApiClient) para la comprobación de SafetyNet? Instalación Fallida Se Requiere una Instalación Adicional Su dispositivo requiere una instalación adicional para que Magisk funcione correctamente. Se descargará el zip de instalación de Magisk, desea continuar ahora? - Configuración Adicional Ejecutando Configuración de Entorno Descargando %1$s Esta opción no funcionará sin permiso de escritura en la memoria externa. @@ -131,7 +139,6 @@ Beta Personalizado Insertar una URL personalizada - Habilitar sólo funciones principales, no se cargarán todos los módulos. MagiskSU y MagiskHide seguirán habilitados Ocultar Magisk de varias detecciones Systemless Hosts diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml index 6b37dd103..31055c9d5 100644 --- a/app/src/main/res/values-ro/strings.xml +++ b/app/src/main/res/values-ro/strings.xml @@ -3,7 +3,7 @@ Module Descărcări - Superuser + Superutilizator Jurnal Setări Instalează @@ -17,7 +17,7 @@ Atinge pentru a începe verificarea SafetyNet Se verifică starea SafetyNet… Verificare SafetyNet cu succes - Eroare API SafetyNet + Eroare privind API-ul SafetyNet Răspunsul este nevalid. Magisk este la zi Magisk Manager este la zi @@ -30,7 +30,7 @@ Dezinstalează Magisk Toate modulele vor fi dezactivate/eliminate. Rootul va fi eliminat și potențial se vor cripta datele dacă nu sunt criptate deja. Actualizează - (Este activat numai modul de bază) + (Este activat modul numai de bază) (Nu sunt furnizate informații) @@ -74,6 +74,18 @@ Actualizare Magisk disponibilă! Actualizare Magisk Manager disponibilă! + + Apasă pentru a descărca și a instala. + Doar descarcă zip-ul + Instalare directă (Recomandat) + Instalare în slotul inactiv (După OTA) + Dispozitivul va fi FORȚAT să booteze în slotul inactiv actual după repornire!\nFolosește această opțiune numai după terminarea OTA.\nContinui? + Selectează metoda + Configurare suplimentară + Selectează și patchuiește un fișier + Selectează o imagine brută (*.img) sau un fișier tar ODIN (*.tar) + Repornire în 5 secunde… + Închide Instalează %1$s @@ -84,19 +96,13 @@ Note privind versiunea Cache-ul depozitului golit Zip-ul este stocat în:\n[Stocare internă]%1$s - Apasă pentru a descărca și instala. - DTBO a fost modificat! - Magisk Manager a modificat dtbo.img. Te rugăm să repornești. + DTBO a fost patchuit! + Magisk Manager a patchuit dtbo.img. Te rugăm să repornești. Se procesează Se ascunde Magisk Manager… Ascunderea Magisk Manager a eșuat. Nu a fost găsită nicio aplicație pentru a deschide linkul. - Doar descarcă fișierul zip - Instalare directă (Recomandat) - Instalare în slotul inactiv (După OTA) Avertisment - Dispozitivul va fi FORȚAT să se încarce în slotul inactiv actual după repornire!\nFolosește această opțiune numai după terminarea OTA.\nContinui? - Selectează metoda Dezinstalare totală Restaurează imagini Se restaurează… @@ -107,7 +113,6 @@ Configurare eșuată. Necesită configurare suplimentară Dispozitivul tău are nevoie de configurări suplimentare pentru ca Magisk să funcționeze corect. Se va descărca zip-ul de configurare Magisk, vrei să continui acum? - Configurare adițională Rulează configurarea mediului… Se descarcă %1$s Această caracteristică nu va funcționa fără permisiunea de a scrie în stocarea externă. @@ -117,8 +122,8 @@ General Temă întunecată Activează tema întunecată. - Golește cache-ul depozitului - Golește informațiile memorate în cache pentru depoziturile online. Acest lucru forțează actualizarea aplicației online. + Golește cache-ul depozitelor + Golește informațiile memorate în cache pentru depozitele online. Acest lucru forțează actualizarea aplicației online. Ascunde Magisk Manager Reîmpachetează Magisk Manager cu nume de pachet aleatoriu. Restaurează Magisk Manager diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 060cfeaee..f3927b658 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -74,6 +74,18 @@ Доступне оновлення Magisk! Доступне оновлення Magisk Manager! + + Натисніть, щоб завантажити і встановити. + Тільки завантажити + Пряме встановлення (рекомендовано) + Встановити в неактивний слот (після OTA) + Ваш пристрій буде примусово перезавантажено в неактивний слот!\nВикористовуйте цю опцію тільки для встановлення OTA.\nПродовжити? + Виберіть спосіб + Додаткове налаштування + Вибрати і пропатчити файл + Виберіть необроблений образ (*.img) або стиснутий файл ODIN (*.tar) + Перезавантаження через 5 секунд… + Закрити Встановити %1$s @@ -83,20 +95,15 @@ Для застосування змін перезавантажте пристрій. Особливості версії Кеш репозиторію очищено - Архів розташований:\n[Внутрішнє Сховище]%1$s - Натисніть, щоб завантажити і встановити. + Архів розташований у:\n[Внутрішньому Сховищі]%1$s + DTBO пропатчено! Magisk Manager пропатчив dtbo.img. Будь ласка, перезавантажте пристрій. Прошивання Приховування Magisk Manager… Не вдалося приховати Magisk Manager… Не знайдено програм для відкриття посилання… - Тільки завантажити - Пряме встановлення (рекомендовано) - Встановити в неактивний слот (після OTA) Попередження - Ваш пристрій буде примусово перезавантажено в неактивний слот!\nВикористовуйте цю опцію тільки для встановлення OTA.\nПродовжити? - Виберіть спосіб Видалення виконано Відновити образи Відновлення… @@ -107,7 +114,6 @@ Не вдалося налаштувати. Потрібне додаткове налаштування Для правильної роботи Magisk, потрібне додаткове налаштування вашого пристрою. Буде завантажено zip-архів. Розпочати негайно? - Додаткове налаштування Налаштування робочого середовища… Завантаження %1$s Ця функція не працюватиме без дозволу на запис у Внутрішнє сховище @@ -209,6 +215,7 @@ Помилка автентифікації + PID: %1$d Цільовий UID: %1$d Команда: %1$s diff --git a/native/jni/core/init.cpp b/native/jni/core/init.cpp index b5dd3825d..43da07002 100644 --- a/native/jni/core/init.cpp +++ b/native/jni/core/init.cpp @@ -197,43 +197,50 @@ static inline void parse_cmdline(const std::function events; + constexpr const char *name = "/event"; for (int minor = 64; minor < 96; ++minor) { - if (mknod("/event", S_IFCHR | 0444, makedev(13, minor))) { + if (mknod(name, S_IFCHR | 0444, makedev(13, minor))) { PLOGE("mknod"); continue; } - eventfd = xopen("/event", O_RDWR | O_CLOEXEC); - unlink("/event"); - if (eventfd < 0) + int fd = open(name, O_RDONLY | O_CLOEXEC); + unlink(name); + if (fd < 0) continue; memset(bitmask, 0, sizeof(bitmask)); - ioctl(eventfd, EVIOCGBIT(EV_KEY, sizeof(bitmask)), bitmask); - if (test_bit(KEY_POWER, bitmask) && test_bit(KEY_VOLUMEUP, bitmask)) { - // Check KEY_POWER because KEY_VOLUMEUP could be headphone input - break; - } + ioctl(fd, EVIOCGBIT(EV_KEY, sizeof(bitmask)), bitmask); + if (test_bit(KEY_VOLUMEUP, bitmask)) + events.push_back(fd); } - if (eventfd < 0) + if (events.empty()) return false; + RunFinally fin([&]() -> void { + for (const int &fd : events) + close(fd); + }); + // Return true if volume key up is hold for more than 3 seconds int count = 0; for (int i = 0; i < 500; ++i) { - memset(bitmask, 0, sizeof(bitmask)); - ioctl(eventfd, EVIOCGKEY(sizeof(bitmask)), bitmask); - count = test_bit(KEY_VOLUMEUP, bitmask) ? count + 1 : 0; + for (const int &fd : events) { + memset(bitmask, 0, sizeof(bitmask)); + ioctl(fd, EVIOCGKEY(sizeof(bitmask)), bitmask); + if (test_bit(KEY_VOLUMEUP, bitmask)) { + count++; + break; + } + } if (count >= 300) { LOGD("KEY_VOLUMEUP detected: disable system-as-root\n"); - close(eventfd); return true; } // Check every 10ms usleep(10000); } - close(eventfd); return false; } diff --git a/stub/src/main/res/values-uk/strings.xml b/stub/src/main/res/values-uk/strings.xml new file mode 100644 index 000000000..63d4f1519 --- /dev/null +++ b/stub/src/main/res/values-uk/strings.xml @@ -0,0 +1,4 @@ + + Оновіть Magisk Manager для завершення встановлення. Завантажити і встановити? + Будь ласка, підключіться до Інтернету! Потрібно оновити Magisk Manager. +