You've already forked ReZygisk
mirror of
https://github.com/PerformanC/ReZygisk.git
synced 2025-09-06 06:37:01 +00:00
add: action card sepreate with settings
This commit is contained in:
@@ -174,6 +174,7 @@ androidComponents.onVariants { variant ->
|
||||
set.add(Pair(root.file("webroot/js/list/module.js").asFile, null))
|
||||
set.add(Pair(root.file("webroot/js/list/settings.js").asFile, null))
|
||||
set.add(Pair(root.file("webroot/js/list/language.js").asFile, null))
|
||||
set.add(Pair(root.file("webroot/js/list/action.js").asFile, null))
|
||||
|
||||
set.add(Pair(root.file("webroot/js/switcher/fontChanger.js").asFile, null))
|
||||
|
||||
@@ -207,6 +208,7 @@ androidComponents.onVariants { variant ->
|
||||
set.add(Pair(root.file("webroot/assets/lang.svg").asFile, null))
|
||||
set.add(Pair(root.file("webroot/assets/content.svg").asFile, null))
|
||||
set.add(Pair(root.file("webroot/assets/error.svg").asFile, null))
|
||||
set.add(Pair(root.file("webroot/assets/action.svg").asFile, null))
|
||||
sig.initSign(privKey)
|
||||
set.forEach { it.first.sha(it.second) }
|
||||
val signFile = root.file(name).asFile
|
||||
|
||||
@@ -125,6 +125,7 @@ extract "$ZIPFILE" 'webroot/js/restoreError.js' "$MODPATH/webroot/js/list" true
|
||||
extract "$ZIPFILE" 'webroot/js/list/module.js' "$MODPATH/webroot/js/list" true
|
||||
extract "$ZIPFILE" 'webroot/js/list/settings.js' "$MODPATH/webroot/js/list" true
|
||||
extract "$ZIPFILE" 'webroot/js/list/language.js' "$MODPATH/webroot/js/list" true
|
||||
extract "$ZIPFILE" 'webroot/js/list/action.js' "$MODPATH/webroot/js/list" true
|
||||
|
||||
for lang in en_US ja_JP pt_BR ro_RO ru_RU vi_VN zh_CN zh_TW; do
|
||||
extract "$ZIPFILE" "webroot/lang/${lang}.json" "$MODPATH/webroot/lang" true
|
||||
@@ -141,7 +142,7 @@ extract "$ZIPFILE" 'webroot/css/fonts.css' "$MODPATH/webroot/css" true
|
||||
extract "$ZIPFILE" 'webroot/fonts/ProductSans-Italic.ttf' "$MODPATH/webroot/fonts" true
|
||||
extract "$ZIPFILE" 'webroot/fonts/ProductSans-Regular.ttf' "$MODPATH/webroot/fonts" true
|
||||
|
||||
for svg in mark tick warn light dark module expand settings close lang content error; do
|
||||
for svg in mark tick warn light dark module expand settings close lang content error action; do
|
||||
extract "$ZIPFILE" "webroot/assets/${svg}.svg" "$MODPATH/webroot/assets" true
|
||||
done
|
||||
|
||||
|
||||
1
webroot/assets/action.svg
Normal file
1
webroot/assets/action.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#e8eaed"><path d="M240-160q-33 0-56.5-23.5T160-240q0-33 23.5-56.5T240-320q33 0 56.5 23.5T320-240q0 33-23.5 56.5T240-160Zm240 0q-33 0-56.5-23.5T400-240q0-33 23.5-56.5T480-320q33 0 56.5 23.5T560-240q0 33-23.5 56.5T480-160Zm240 0q-33 0-56.5-23.5T640-240q0-33 23.5-56.5T720-320q33 0 56.5 23.5T800-240q0 33-23.5 56.5T720-160ZM240-400q-33 0-56.5-23.5T160-480q0-33 23.5-56.5T240-560q33 0 56.5 23.5T320-480q0 33-23.5 56.5T240-400Zm240 0q-33 0-56.5-23.5T400-480q0-33 23.5-56.5T480-560q33 0 56.5 23.5T560-480q0 33-23.5 56.5T480-400Zm240 0q-33 0-56.5-23.5T640-480q0-33 23.5-56.5T720-560q33 0 56.5 23.5T800-480q0 33-23.5 56.5T720-400ZM240-640q-33 0-56.5-23.5T160-720q0-33 23.5-56.5T240-800q33 0 56.5 23.5T320-720q0 33-23.5 56.5T240-640Zm240 0q-33 0-56.5-23.5T400-720q0-33 23.5-56.5T480-800q33 0 56.5 23.5T560-720q0 33-23.5 56.5T480-640Zm240 0q-33 0-56.5-23.5T640-720q0-33 23.5-56.5T720-800q33 0 56.5 23.5T800-720q0 33-23.5 56.5T720-640Z"/></svg>
|
||||
|
After Width: | Height: | Size: 1.0 KiB |
@@ -10,6 +10,7 @@
|
||||
<script src="js/list/module.js" type="module"></script>
|
||||
<script src="js/list/settings.js" type="module"></script>
|
||||
<script src="js/list/language.js" type="module"></script>
|
||||
<script src="js/list/action.js" type="module"></script>
|
||||
<script src="js/switcher/fontChanger.js" type="module"></script>
|
||||
<script src="js/main.js" type="module"></script>
|
||||
<script src="js/modal/language.js" type="module"></script>
|
||||
@@ -125,21 +126,21 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- INFO: Settings card -->
|
||||
<div id="rezygisk_settings" class="dim card list" style="display: none;">
|
||||
<!-- INFO: Settings card header -->
|
||||
<div id="settings_header" class="dimc" style="align-items: center; display: flex; justify-content: space-between; padding-bottom: 10px;">
|
||||
<!-- INFO: Action card -->
|
||||
<div id="rezygisk_action" class="dim card list" style="display: none;">
|
||||
<!-- INFO: Action card header -->
|
||||
<div id="action_header" class="dimc" style="align-items: center; display: flex; justify-content: space-between; padding-bottom: 10px;">
|
||||
<div class="dimc" style="align-items: center; display: flex;">
|
||||
<div class="dimc" id="setting_icon">
|
||||
<img class="dimc" src="assets/settings.svg">
|
||||
<div class="dimc" id="action_icon">
|
||||
<img class="dimc" src="assets/action.svg">
|
||||
</div>
|
||||
<div id="settings_card_title" class="dimc content" style="padding-left: 5px; font-size: 1.2em;">
|
||||
Settings
|
||||
<div id="action_card_title" class="dimc content" style="padding-left: 5px; font-size: 1.2em;">
|
||||
Actions
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="dimc">
|
||||
<div id="settings_expand_icon" class="dimc expander" style="margin-bottom: 4px; max-height: 24px;">
|
||||
<div id="action_expand_icon" class="dimc expander" style="margin-bottom: 4px; max-height: 24px;">
|
||||
<img class="dimc" src="assets/expand.svg">
|
||||
</div>
|
||||
</div>
|
||||
@@ -162,7 +163,28 @@
|
||||
<div id="daemon64_exit_button" class="center button">Exit</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- INFO: Settings card -->
|
||||
<div id="rezygisk_settings" class="dim card list">
|
||||
<!-- INFO: Settings card header -->
|
||||
<div id="settings_header" class="dimc" style="align-items: center; display: flex; justify-content: space-between; padding-bottom: 10px;">
|
||||
<div class="dimc" style="align-items: center; display: flex;">
|
||||
<div class="dimc" id="setting_icon">
|
||||
<img class="dimc" src="assets/settings.svg">
|
||||
</div>
|
||||
<div id="settings_card_title" class="dimc content" style="padding-left: 5px; font-size: 1.2em;">
|
||||
Settings
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="dimc">
|
||||
<div id="settings_expand_icon" class="dimc expander" style="margin-bottom: 4px; max-height: 24px;">
|
||||
<img class="dimc" src="assets/expand.svg">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- INFO: Enable system font option -->
|
||||
<div class="small_card" style="margin-top: 15px; justify-content: space-between; display: flex; align-items: center;">
|
||||
<div class="small_card_bg" style="display: inline-block; width: 80%;">
|
||||
<div id="sys_font_option_title" class="small_card_bg content" style="font-size: 1.1em; padding-left: 5px; padding-top: 6px; padding-bottom: 2px;">Enable system font</div>
|
||||
|
||||
@@ -8,6 +8,8 @@ const module_card_title = document.getElementById('module_card_title')
|
||||
const module_element_arch = document.getElementsByClassName('arch_desc')
|
||||
/* INFO: settings card */
|
||||
const settings_card_title = document.getElementById('settings_card_title')
|
||||
/* INFO: action card */
|
||||
const action_card_title = document.getElementById('action_card_title')
|
||||
/* INFO: daemon32 small card */
|
||||
const daemon32_stop_button = document.getElementById('daemon32_stop_button')
|
||||
const daemon32_start_button = document.getElementById('daemon32_start_button')
|
||||
@@ -47,17 +49,19 @@ export async function setNewLanguage(locate, initialize) {
|
||||
module_card_title.innerHTML = new_lang.moduleCard.header
|
||||
/* INFO: settings card */
|
||||
settings_card_title.innerHTML = new_lang.settings.header
|
||||
/* INFO: action card */
|
||||
action_card_title.innerHTML = new_lang.action.header
|
||||
/* INFO: daemon32 small card */
|
||||
if (daemon32_stop_button) { /* INFO: Not all devices have 32-bit support */
|
||||
daemon32_stop_button.innerHTML = new_lang.settings.daemonButton.stop
|
||||
daemon32_start_button.innerHTML = new_lang.settings.daemonButton.start
|
||||
daemon32_exit_button.innerHTML = new_lang.settings.daemonButton.exit
|
||||
daemon32_stop_button.innerHTML = new_lang.action.daemonButton.stop
|
||||
daemon32_start_button.innerHTML = new_lang.action.daemonButton.start
|
||||
daemon32_exit_button.innerHTML = new_lang.action.daemonButton.exit
|
||||
}
|
||||
/* INFO: daemon64 small card */
|
||||
if (daemon64_stop_button) { /* INFO: Not all devices have 64-bit support */
|
||||
daemon64_stop_button.innerHTML = new_lang.settings.daemonButton.stop
|
||||
daemon64_start_button.innerHTML = new_lang.settings.daemonButton.start
|
||||
daemon64_exit_button.innerHTML = new_lang.settings.daemonButton.exit
|
||||
daemon64_stop_button.innerHTML = new_lang.action.daemonButton.stop
|
||||
daemon64_start_button.innerHTML = new_lang.action.daemonButton.start
|
||||
daemon64_exit_button.innerHTML = new_lang.action.daemonButton.exit
|
||||
}
|
||||
/* INFO: lang modal */
|
||||
lang_modal_title.innerHTML = new_lang.langModal.header
|
||||
|
||||
@@ -37,4 +37,10 @@ export const light_copy_icon = `
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="40px" viewBox="0 -960 960 960" width="40px" fill="#2c2c2c">
|
||||
<path d="M320-213.33q-27 0-46.83-19.84Q253.33-253 253.33-280v-533.33q0-27 19.84-46.84Q293-880 320-880h413.33q27 0 46.84 19.83Q800-840.33 800-813.33V-280q0 27-19.83 46.83-19.84 19.84-46.84 19.84H320Zm0-66.67h413.33v-533.33H320V-280ZM186.67-80q-27 0-46.84-19.83Q120-119.67 120-146.67v-600h66.67v600h480V-80h-480ZM320-280v-533.33V-280Z"/>
|
||||
</svg>
|
||||
`
|
||||
|
||||
export const light_action_icon = `
|
||||
<svg class="dimc" xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#2c2c2c">
|
||||
<path d="M240-160q-33 0-56.5-23.5T160-240q0-33 23.5-56.5T240-320q33 0 56.5 23.5T320-240q0 33-23.5 56.5T240-160Zm240 0q-33 0-56.5-23.5T400-240q0-33 23.5-56.5T480-320q33 0 56.5 23.5T560-240q0 33-23.5 56.5T480-160Zm240 0q-33 0-56.5-23.5T640-240q0-33 23.5-56.5T720-320q33 0 56.5 23.5T800-240q0 33-23.5 56.5T720-160ZM240-400q-33 0-56.5-23.5T160-480q0-33 23.5-56.5T240-560q33 0 56.5 23.5T320-480q0 33-23.5 56.5T240-400Zm240 0q-33 0-56.5-23.5T400-480q0-33 23.5-56.5T480-560q33 0 56.5 23.5T560-480q0 33-23.5 56.5T480-400Zm240 0q-33 0-56.5-23.5T640-480q0-33 23.5-56.5T720-560q33 0 56.5 23.5T800-480q0 33-23.5 56.5T720-400ZM240-640q-33 0-56.5-23.5T160-720q0-33 23.5-56.5T240-800q33 0 56.5 23.5T320-720q0 33-23.5 56.5T240-640Zm240 0q-33 0-56.5-23.5T400-720q0-33 23.5-56.5T480-800q33 0 56.5 23.5T560-720q0 33-23.5 56.5T480-640Zm240 0q-33 0-56.5-23.5T640-720q0-33 23.5-56.5T720-800q33 0 56.5 23.5T800-720q0 33-23.5 56.5T720-640Z"/>
|
||||
</svg>
|
||||
`
|
||||
26
webroot/js/list/action.js
Normal file
26
webroot/js/list/action.js
Normal file
@@ -0,0 +1,26 @@
|
||||
const button = document.getElementById('action_header')
|
||||
const icon = document.getElementById('action_expand_icon')
|
||||
const card = document.getElementById('rezygisk_action')
|
||||
|
||||
let sys_module_mode = localStorage.getItem('/cache/list/action/state')
|
||||
sys_module_mode = setData('closed')
|
||||
|
||||
button.addEventListener('click', () => {
|
||||
if (sys_module_mode === 'closed') {
|
||||
sys_module_mode = setData('opened')
|
||||
icon.style.transform = 'rotate(180deg)'
|
||||
card.style.maxHeight = `${card.scrollHeight}px`
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
sys_module_mode = setData('closed')
|
||||
icon.style.transform = 'rotate(0deg)'
|
||||
card.style.maxHeight = null
|
||||
})
|
||||
|
||||
function setData(mode) {
|
||||
localStorage.setItem('/cache/list/action/state', mode)
|
||||
|
||||
return localStorage.getItem('/cache/list/action/state')
|
||||
}
|
||||
@@ -1,6 +1,14 @@
|
||||
import { fullScreen, exec, toast } from './kernelsu.js'
|
||||
import { setNewLanguage, getTranslations } from './language.js'
|
||||
|
||||
const loading_screen = document.getElementById('loading_screen')
|
||||
loading_screen.style.display = 'none'
|
||||
|
||||
let sys_lang = localStorage.getItem('/system/language')
|
||||
|
||||
if (!sys_lang) sys_lang = setLangData('en_US')
|
||||
if (sys_lang !== 'en_US') await setNewLanguage(sys_lang, true)
|
||||
|
||||
(async () => {
|
||||
const EXPECTED = 1
|
||||
const UNEXPECTED_FAIL = 2
|
||||
@@ -19,7 +27,7 @@ import { setNewLanguage, getTranslations } from './language.js'
|
||||
const rootCss = document.querySelector(':root')
|
||||
|
||||
const rezygisk_state = document.getElementById('rezygisk_state')
|
||||
const rezygisk_settings = document.getElementById('rezygisk_settings')
|
||||
const rezygisk_action = document.getElementById('rezygisk_action')
|
||||
const rezygisk_icon_state = document.getElementById('rezygisk_icon_state')
|
||||
|
||||
const code_version = document.getElementById('version_code')
|
||||
@@ -90,13 +98,13 @@ import { setNewLanguage, getTranslations } from './language.js'
|
||||
if (zygote32_status === EXPECTED && zygote64_status === EXPECTED) {
|
||||
rezygisk_state.innerHTML = translations.infoCard.status.ok
|
||||
|
||||
rezygisk_settings.removeAttribute('style')
|
||||
rezygisk_action.removeAttribute('style')
|
||||
rootCss.style.setProperty('--bright', '#3a4857')
|
||||
rezygisk_icon_state.innerHTML = '<img class="brightc" src="assets/tick.svg">'
|
||||
} else if (zygote64_status === EXPECTED ^ zygote32_status.innerHTML === EXPECTED) {
|
||||
rezygisk_state.innerHTML = translations.infoCard.status.partially
|
||||
|
||||
rezygisk_settings.removeAttribute('style')
|
||||
rezygisk_action.removeAttribute('style')
|
||||
rootCss.style.setProperty('--bright', '#766000')
|
||||
rezygisk_icon_state.innerHTML = '<img class="brightc" src="assets/warn.svg">'
|
||||
} else {
|
||||
|
||||
@@ -6,20 +6,21 @@ import {
|
||||
light_expand_icon,
|
||||
light_module_icon,
|
||||
light_settings_icon,
|
||||
light_copy_icon
|
||||
light_copy_icon,
|
||||
light_action_icon
|
||||
} from "./light.icon.js"
|
||||
const rootCss = document.querySelector(':root')
|
||||
const button = document.getElementById('theme_switcher')
|
||||
|
||||
/* INFO: Changes the icons to match the theme */
|
||||
const module_list_icon = document.getElementById('modules_list_icon')
|
||||
const module_expand = document.getElementById('module_expand_icon')
|
||||
const settings_expand = document.getElementById('settings_expand_icon')
|
||||
const settings_icon = document.getElementById('setting_icon')
|
||||
const lang_switcher = document.getElementById('lang_switcher')
|
||||
const logs_icon = document.getElementById('logs_icon')
|
||||
const close_icons = document.getElementsByClassName('close_icon')
|
||||
const expand_icons = document.getElementsByClassName('expander')
|
||||
const copy_button = document.getElementById('errorh_copy')
|
||||
const action_icon = document.getElementById('action_icon')
|
||||
|
||||
let sys_theme = localStorage.getItem('/system/theme')
|
||||
if (!sys_theme) sys_theme = setData('dark')
|
||||
@@ -49,14 +50,17 @@ function setDark() {
|
||||
close_icon.innerHTML = '<img src="assets/close.svg">'
|
||||
}
|
||||
|
||||
for (const expand_icon of expand_icons) {
|
||||
expand_icon.innerHTML = '<img class="dimc" src="assets/expand.svg">'
|
||||
}
|
||||
|
||||
settings_icon.innerHTML = '<img class="dimc" src="assets/settings.svg">'
|
||||
module_expand.innerHTML = '<img class="dimc" src="assets/expand.svg">'
|
||||
settings_expand.innerHTML = '<img class="dimc" src="assets/expand.svg">'
|
||||
button.innerHTML = '<img src="assets/dark.svg">'
|
||||
module_list_icon.innerHTML = '<img class="dimc" src="assets/module.svg">'
|
||||
lang_switcher.innerHTML = '<img src="assets/lang.svg">'
|
||||
logs_icon.innerHTML = '<img class="dimc" src="assets/error.svg">'
|
||||
copy_button.innerHTML = '<img src="assets/content.svg">'
|
||||
action_icon.innerHTML = '<img class="dimc" src="assets/action.svg">'
|
||||
}
|
||||
|
||||
function setLight() {
|
||||
@@ -75,14 +79,17 @@ function setLight() {
|
||||
close_icon.innerHTML = light_close_icon
|
||||
}
|
||||
|
||||
for (const expand_icon of expand_icons) {
|
||||
expand_icon.innerHTML = light_expand_icon
|
||||
}
|
||||
|
||||
settings_icon.innerHTML = light_settings_icon
|
||||
module_expand.innerHTML = light_expand_icon
|
||||
settings_expand.innerHTML = light_expand_icon
|
||||
button.innerHTML = light_icon
|
||||
module_list_icon.innerHTML = light_module_icon
|
||||
lang_switcher.innerHTML = light_lang_icon
|
||||
logs_icon.innerHTML = light_logs_icon
|
||||
copy_button.innerHTML = light_copy_icon
|
||||
action_icon.innerHTML = light_action_icon
|
||||
}
|
||||
|
||||
function setData(mode) {
|
||||
|
||||
@@ -22,14 +22,17 @@
|
||||
"header": "Modules",
|
||||
"arch": "Arch: "
|
||||
},
|
||||
"settings": {
|
||||
"header": "Settings",
|
||||
"action": {
|
||||
"header": "Action",
|
||||
"daemonButton": {
|
||||
"start": "Start",
|
||||
"stop": "Stop",
|
||||
"exit": "Exit"
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"header": "Settings"
|
||||
},
|
||||
"cmdErrors": {
|
||||
"ptrace64": "Error while executing zygisk-ptrace64",
|
||||
"ptrace32": "Error while executing zygisk-ptrace32",
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
"header": "モジュール",
|
||||
"arch": "アーキテクチャー: "
|
||||
},
|
||||
"settings": {
|
||||
"action": {
|
||||
"header": "設定",
|
||||
"daemonButton": {
|
||||
"start": "スタート",
|
||||
@@ -30,6 +30,9 @@
|
||||
"exit": "終了"
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"header": "設定"
|
||||
},
|
||||
"cmdErrors": {
|
||||
"ptrace64": "zygisk-ptrace64を実行している間にエラーが発生しました。",
|
||||
"ptrace32": "zygisk-ptrace32を実行している間にエラーが発生しました。",
|
||||
|
||||
@@ -22,14 +22,17 @@
|
||||
"header": "Módulos",
|
||||
"arch": "Arquitetura: "
|
||||
},
|
||||
"settings": {
|
||||
"header": "Configurações",
|
||||
"action": {
|
||||
"header": "Ações",
|
||||
"daemonButton": {
|
||||
"start": "Iniciar",
|
||||
"stop": "Parar",
|
||||
"exit": "Sair"
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"header": "Configurações"
|
||||
},
|
||||
"cmdErrors": {
|
||||
"ptrace64": "Erro ao executar zygisk-ptrace64",
|
||||
"ptrace32": "Erro ao executar zygisk-ptrace32",
|
||||
|
||||
@@ -22,14 +22,17 @@
|
||||
"header": "Module",
|
||||
"arch": "Arhitectură: "
|
||||
},
|
||||
"settings": {
|
||||
"header": "Setări",
|
||||
"action": {
|
||||
"header": "Action",
|
||||
"daemonButton": {
|
||||
"start": "Start",
|
||||
"stop": "Stop",
|
||||
"exit": "Ieșire"
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"header": "Setări"
|
||||
},
|
||||
"cmdErrors": {
|
||||
"ptrace64": "Eroare în timpul executării zygisk-ptrace64",
|
||||
"ptrace32": "Eroare în timpul executării zygisk-ptrace32",
|
||||
|
||||
@@ -22,14 +22,17 @@
|
||||
"header": "Модули",
|
||||
"arch": "Архи-ра: "
|
||||
},
|
||||
"settings": {
|
||||
"header": "Настройки",
|
||||
"action": {
|
||||
"header": "Action",
|
||||
"daemonButton": {
|
||||
"start": "Старт",
|
||||
"stop": "Пауза",
|
||||
"exit": "Стоп"
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"header": "Настройки"
|
||||
},
|
||||
"cmdErrors": {
|
||||
"ptrace64": "Ошибка выполнения zygisk-ptrace64",
|
||||
"ptrace32": "Ошибка выполнения zygisk-ptrace32",
|
||||
|
||||
@@ -22,14 +22,17 @@
|
||||
"header": "Mô Đun",
|
||||
"arch": "Cấu trúc: "
|
||||
},
|
||||
"settings": {
|
||||
"header": "Cài đặt",
|
||||
"action": {
|
||||
"header": "Trình điều khiển",
|
||||
"daemonButton": {
|
||||
"start": "Chạy",
|
||||
"stop": "Dừng",
|
||||
"exit": "Thoát"
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"header": "Cài đặt"
|
||||
},
|
||||
"cmdErrors": {
|
||||
"ptrace64": "Đã xảy ra lỗi khi chạy zygisk-ptrace64",
|
||||
"ptrace32": "Đã xảy ra lỗi khi chạy zygisk-ptrace32",
|
||||
|
||||
@@ -23,14 +23,17 @@
|
||||
"header": "模块",
|
||||
"arch": "架构: "
|
||||
},
|
||||
"settings": {
|
||||
"header": "设置",
|
||||
"action": {
|
||||
"header": "Action",
|
||||
"daemonButton": {
|
||||
"start": "启动",
|
||||
"stop": "停止",
|
||||
"exit": "退出"
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"header": "设置"
|
||||
},
|
||||
"cmdErrors": {
|
||||
"ptrace64": "执行zygisk-ptrace64时出现错误",
|
||||
"ptrace32": "执行zygisk-ptrace32时出现错误",
|
||||
|
||||
@@ -24,14 +24,17 @@
|
||||
"header": "模塊",
|
||||
"arch": "架構: "
|
||||
},
|
||||
"settings": {
|
||||
"header": "設定",
|
||||
"action": {
|
||||
"header": "Action",
|
||||
"daemonButton": {
|
||||
"start": "啟動",
|
||||
"stop": "停止",
|
||||
"exit": "退出"
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"header": "設定"
|
||||
},
|
||||
"cmdErrors": {
|
||||
"ptrace64": "執行zygisk-ptrace64時發生錯誤",
|
||||
"ptrace32": "執行zygisk-ptrace32時發生錯誤",
|
||||
|
||||
Reference in New Issue
Block a user