Merge remote-tracking branch 'john/master' into development

This commit is contained in:
Viktor De Pasquale 2019-04-22 17:04:08 +02:00
commit 761a8bf2a9
5 changed files with 77 additions and 47 deletions

View File

@ -73,7 +73,19 @@
<string name="download_file_error">Error descargando archivo</string>
<string name="magisk_update_title">Actualización de Magisk disponible!</string>
<string name="manager_update_title">Actualización de Magisk Manager disponible!</string>
<!-- Installation -->
<string name="manager_download_install">Pulse para descargar e instalar</string>
<string name="download_zip_only">Descargar sólo el archivo ZIP</string>
<string name="direct_install">Instalación Directa (Recomendado)</string>
<string name="install_inactive_slot">Instalar en ranura inactiva (después de OTA)</string>
<string name="install_inactive_slot_msg">¡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?</string>
<string name="select_method">Seleccionar Método</string>
<string name="setup_title">Configuración Adicional</string>
<string name="select_patch_file">Seleccionar y parchear un archivo</string>
<string name="patch_file_msg">Seleccione una imagen raw (* .img) o un archivo tar de ODIN (* .tar)</string>
<string name="reboot_delay_toast">Reiniciando en 5 segundos…</string>
<!--Toasts, Dialogs-->
<string name="close">Cerrar</string>
<string name="repo_install_title">Instalar %1$s</string>
@ -84,28 +96,24 @@
<string name="release_notes">Notas de lanzamiento</string>
<string name="repo_cache_cleared">Caché del repositorio limpiada</string>
<string name="internal_storage">El zip es almacenado en:\n[Internal Storage]%1$s</string>
<string name="manager_download_install">Pulse para descargar e instalar</string>
<string name="dtbo_patched_title">DTBO fue parchado!</string>
<string name="dtbo_patched_reboot">Magisk Manager ha parcheado dtbo.img, por favor reinicia</string>
<string name="flashing">Flasheando</string>
<string name="hide_manager_title">Ocultando Magisk Manager…</string>
<string name="hide_manager_fail_toast">La Ocultación de Magisk Manager ha fallado…</string>
<string name="open_link_failed_toast">No se encontró ninguna aplicación para abrir el enlace…</string>
<string name="download_zip_only">Descargar sólo el archivo ZIP</string>
<string name="direct_install">Instalación Directa (Recomendado)</string>
<string name="install_inactive_slot">Instalar en ranura inactiva (después de OTA)</string>
<string name="select_method">Seleccionar Método</string>
<string name="warning">Advertencia</string>
<string name="complete_uninstall">Desinstalación completa</string>
<string name="restore_img">Restaurar imágenes</string>
<string name="restore_img_msg">Restaurando …</string>
<string name="restore_done">¡Restauración Terminada!</string>
<string name="restore_img_msg">Restaurando …</string>
<string name="restore_fail">¡El respaldo de la imagen boot Stock no existe!</string>
<string name="proprietary_title">Descargar Código Propietario</string>
<string name="proprietary_notice">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?</string>
<string name="setup_fail">Instalación Fallida</string>
<string name="env_fix_title">Se Requiere una Instalación Adicional</string>
<string name="env_fix_msg">Su dispositivo requiere una instalación adicional para que Magisk funcione correctamente. Se descargará el zip de instalación de Magisk, desea continuar ahora?</string>
<string name="setup_title">Configuración Adicional</string>
<string name="setup_msg">Ejecutando Configuración de Entorno</string>
<string name="downloading_toast">Descargando %1$s</string>
<string name="no_rw_storage">Esta opción no funcionará sin permiso de escritura en la memoria externa.</string>
@ -131,7 +139,6 @@
<string name="settings_update_beta">Beta</string>
<string name="settings_update_custom">Personalizado</string>
<string name="settings_update_custom_msg">Insertar una URL personalizada</string>
<string name="settings_core_only_summary">Habilitar sólo funciones principales, no se cargarán todos los módulos. MagiskSU y MagiskHide seguirán habilitados</string>
<string name="settings_magiskhide_summary">Ocultar Magisk de varias detecciones</string>
<string name="settings_hosts_title">Systemless Hosts</string>

View File

@ -3,7 +3,7 @@
<!--Welcome Activity-->
<string name="modules">Module</string>
<string name="downloads">Descărcări</string>
<string name="superuser">Superuser</string>
<string name="superuser">Superutilizator</string>
<string name="log">Jurnal</string>
<string name="settings">Setări</string>
<string name="install">Instalează</string>
@ -17,7 +17,7 @@
<string name="safetyNet_check_text">Atinge pentru a începe verificarea SafetyNet</string>
<string name="checking_safetyNet_status">Se verifică starea SafetyNet…</string>
<string name="safetyNet_check_success">Verificare SafetyNet cu succes</string>
<string name="safetyNet_api_error">Eroare API SafetyNet</string>
<string name="safetyNet_api_error">Eroare privind API-ul SafetyNet</string>
<string name="safetyNet_res_invalid">Răspunsul este nevalid.</string>
<string name="magisk_up_to_date">Magisk este la zi</string>
<string name="manager_up_to_date">Magisk Manager este la zi</string>
@ -30,7 +30,7 @@
<string name="uninstall_magisk_title">Dezinstalează Magisk</string>
<string name="uninstall_magisk_msg">Toate modulele vor fi dezactivate/eliminate. Rootul va fi eliminat și potențial se vor cripta datele dacă nu sunt criptate deja.</string>
<string name="update">Actualizează</string>
<string name="core_only_enabled">(Este activat numai modul de bază)</string>
<string name="core_only_enabled">(Este activat modul numai de bază)</string>
<!--Module Fragment-->
<string name="no_info_provided">(Nu sunt furnizate informații)</string>
@ -74,6 +74,18 @@
<string name="magisk_update_title">Actualizare Magisk disponibilă!</string>
<string name="manager_update_title">Actualizare Magisk Manager disponibilă!</string>
<!-- Installation -->
<string name="manager_download_install">Apasă pentru a descărca și a instala.</string>
<string name="download_zip_only">Doar descarcă zip-ul</string>
<string name="direct_install">Instalare directă (Recomandat)</string>
<string name="install_inactive_slot">Instalare în slotul inactiv (După OTA)</string>
<string name="install_inactive_slot_msg">Dispozitivul va fi FORȚAT să booteze în slotul inactiv actual după repornire!\nFolosește această opțiune numai după terminarea OTA.\nContinui?</string>
<string name="select_method">Selectează metoda</string>
<string name="setup_title">Configurare suplimentară</string>
<string name="select_patch_file">Selectează și patchuiește un fișier</string>
<string name="patch_file_msg">Selectează o imagine brută (*.img) sau un fișier tar ODIN (*.tar)</string>
<string name="reboot_delay_toast">Repornire în 5 secunde…</string>
<!--Toasts, Dialogs-->
<string name="close">Închide</string>
<string name="repo_install_title">Instalează %1$s</string>
@ -84,19 +96,13 @@
<string name="release_notes">Note privind versiunea</string>
<string name="repo_cache_cleared">Cache-ul depozitului golit</string>
<string name="internal_storage">Zip-ul este stocat în:\n[Stocare internă]%1$s</string>
<string name="manager_download_install">Apasă pentru a descărca și instala.</string>
<string name="dtbo_patched_title">DTBO a fost modificat!</string>
<string name="dtbo_patched_reboot">Magisk Manager a modificat dtbo.img. Te rugăm să repornești.</string>
<string name="dtbo_patched_title">DTBO a fost patchuit!</string>
<string name="dtbo_patched_reboot">Magisk Manager a patchuit dtbo.img. Te rugăm să repornești.</string>
<string name="flashing">Se procesează</string>
<string name="hide_manager_title">Se ascunde Magisk Manager…</string>
<string name="hide_manager_fail_toast">Ascunderea Magisk Manager a eșuat.</string>
<string name="open_link_failed_toast">Nu a fost găsită nicio aplicație pentru a deschide linkul.</string>
<string name="download_zip_only">Doar descarcă fișierul zip</string>
<string name="direct_install">Instalare directă (Recomandat)</string>
<string name="install_inactive_slot">Instalare în slotul inactiv (După OTA)</string>
<string name="warning">Avertisment</string>
<string name="install_inactive_slot_msg">Dispozitivul va fi FORȚAT să se încarce în slotul inactiv actual după repornire!\nFolosește această opțiune numai după terminarea OTA.\nContinui?</string>
<string name="select_method">Selectează metoda</string>
<string name="complete_uninstall">Dezinstalare totală</string>
<string name="restore_img">Restaurează imagini</string>
<string name="restore_img_msg">Se restaurează…</string>
@ -107,7 +113,6 @@
<string name="setup_fail">Configurare eșuată.</string>
<string name="env_fix_title">Necesită configurare suplimentară</string>
<string name="env_fix_msg">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?</string>
<string name="setup_title">Configurare adițională</string>
<string name="setup_msg">Rulează configurarea mediului…</string>
<string name="downloading_toast">Se descarcă %1$s</string>
<string name="no_rw_storage">Această caracteristică nu va funcționa fără permisiunea de a scrie în stocarea externă.</string>
@ -117,8 +122,8 @@
<string name="settings_general_category">General</string>
<string name="settings_dark_theme_title">Temă întunecată</string>
<string name="settings_dark_theme_summary">Activează tema întunecată.</string>
<string name="settings_clear_cache_title">Golește cache-ul depozitului</string>
<string name="settings_clear_cache_summary">Golește informațiile memorate în cache pentru depoziturile online. Acest lucru forțează actualizarea aplicației online.</string>
<string name="settings_clear_cache_title">Golește cache-ul depozitelor</string>
<string name="settings_clear_cache_summary">Golește informațiile memorate în cache pentru depozitele online. Acest lucru forțează actualizarea aplicației online.</string>
<string name="settings_hide_manager_title">Ascunde Magisk Manager</string>
<string name="settings_hide_manager_summary">Reîmpachetează Magisk Manager cu nume de pachet aleatoriu.</string>
<string name="settings_restore_manager_title">Restaurează Magisk Manager</string>

View File

@ -74,6 +74,18 @@
<string name="magisk_update_title">Доступне оновлення Magisk!</string>
<string name="manager_update_title">Доступне оновлення Magisk Manager!</string>
<!-- Installation -->
<string name="manager_download_install">Натисніть, щоб завантажити і встановити.</string>
<string name="download_zip_only">Тільки завантажити</string>
<string name="direct_install">Пряме встановлення (рекомендовано)</string>
<string name="install_inactive_slot">Встановити в неактивний слот (після OTA)</string>
<string name="install_inactive_slot_msg">Ваш пристрій буде примусово перезавантажено в неактивний слот!\nВикористовуйте цю опцію тільки для встановлення OTA.\nПродовжити?</string>
<string name="select_method">Виберіть спосіб</string>
<string name="setup_title">Додаткове налаштування</string>
<string name="select_patch_file">Вибрати і пропатчити файл</string>
<string name="patch_file_msg">Виберіть необроблений образ (*.img) або стиснутий файл ODIN (*.tar)</string>
<string name="reboot_delay_toast">Перезавантаження через 5 секунд…</string>
<!--Toasts, Dialogs-->
<string name="close">Закрити</string>
<string name="repo_install_title">Встановити %1$s</string>
@ -83,20 +95,15 @@
<string name="settings_reboot_toast">Для застосування змін перезавантажте пристрій.</string>
<string name="release_notes">Особливості версії</string>
<string name="repo_cache_cleared">Кеш репозиторію очищено</string>
<string name="internal_storage">Архів розташований:\n[Внутрішнє Сховище]%1$s</string>
<string name="manager_download_install">Натисніть, щоб завантажити і встановити.</string>
<string name="internal_storage">Архів розташований у:\n[Внутрішньому Сховищі]%1$s</string>
<string name="dtbo_patched_title">DTBO пропатчено!</string>
<string name="dtbo_patched_reboot">Magisk Manager пропатчив dtbo.img. Будь ласка, перезавантажте пристрій.</string>
<string name="flashing">Прошивання</string>
<string name="hide_manager_title">Приховування Magisk Manager…</string>
<string name="hide_manager_fail_toast">Не вдалося приховати Magisk Manager…</string>
<string name="open_link_failed_toast">Не знайдено програм для відкриття посилання…</string>
<string name="download_zip_only">Тільки завантажити</string>
<string name="direct_install">Пряме встановлення (рекомендовано)</string>
<string name="install_inactive_slot">Встановити в неактивний слот (після OTA)</string>
<string name="warning">Попередження</string>
<string name="install_inactive_slot_msg">Ваш пристрій буде примусово перезавантажено в неактивний слот!\nВикористовуйте цю опцію тільки для встановлення OTA.\nПродовжити?</string>
<string name="select_method">Виберіть спосіб</string>
<string name="complete_uninstall">Видалення виконано</string>
<string name="restore_img">Відновити образи</string>
<string name="restore_img_msg">Відновлення…</string>
@ -107,7 +114,6 @@
<string name="setup_fail">Не вдалося налаштувати.</string>
<string name="env_fix_title">Потрібне додаткове налаштування</string>
<string name="env_fix_msg">Для правильної роботи Magisk, потрібне додаткове налаштування вашого пристрою. Буде завантажено zip-архів. Розпочати негайно?</string>
<string name="setup_title">Додаткове налаштування</string>
<string name="setup_msg">Налаштування робочого середовища…</string>
<string name="downloading_toast">Завантаження %1$s</string>
<string name="no_rw_storage">Ця функція не працюватиме без дозволу на запис у Внутрішнє сховище</string>
@ -209,6 +215,7 @@
<string name="auth_fail">Помилка автентифікації</string>
<!--Superuser logs-->
<string name="pid">PID: %1$d</string>
<string name="target_uid">Цільовий UID: %1$d</string>
<string name="command">Команда: %1$s</string>

View File

@ -197,43 +197,50 @@ static inline void parse_cmdline(const std::function<void (std::string_view, con
static bool check_key_combo() {
uint8_t bitmask[(KEY_MAX + 1) / 8];
int eventfd = -1;
vector<int> 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;
}

View File

@ -0,0 +1,4 @@
<resources>
<string name="upgrade_msg">Оновіть Magisk Manager для завершення встановлення. Завантажити і встановити?</string>
<string name="no_internet_msg">Будь ласка, підключіться до Інтернету! Потрібно оновити Magisk Manager.</string>
</resources>