You've already forked Tricky-Addon-Update-Target-List
mirror of
https://github.com/KOWX712/Tricky-Addon-Update-Target-List.git
synced 2025-09-06 06:37:09 +00:00
Compare commits
34 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9cc603f36a | ||
|
|
4dfa542940 | ||
|
|
176a4c1654 | ||
|
|
e91bd510e9 | ||
|
|
976ff21141 | ||
|
|
ae12fe8b28 | ||
|
|
36325fc241 | ||
|
|
9b4cf45887 | ||
|
|
276d5fc4fc | ||
|
|
f1de41bd2f | ||
|
|
aa7b5b7573 | ||
|
|
c9ae860ae2 | ||
|
|
1b8fff9347 | ||
|
|
f904ed2bec | ||
|
|
023af806b1 | ||
|
|
311124f3cf | ||
|
|
18a9d41fde | ||
|
|
3668cfe033 | ||
|
|
df0dfefaa2 | ||
|
|
c21aa9994b | ||
|
|
b58397da61 | ||
|
|
e4f1c7fcc8 | ||
|
|
9c8cb9b6c2 | ||
|
|
8d2cb81ae6 | ||
|
|
7220ab62b4 | ||
|
|
c1860c0d0b | ||
|
|
425b8f72bf | ||
|
|
a1df41bd01 | ||
|
|
46e4e68dc2 | ||
|
|
453198c888 | ||
|
|
b3bf8bdde8 | ||
|
|
b0025ea5d5 | ||
|
|
38848fa891 | ||
|
|
4cd2083b94 |
2
.github/ISSUE_TEMPLATE/language_request.yml
vendored
2
.github/ISSUE_TEMPLATE/language_request.yml
vendored
@@ -33,6 +33,6 @@ body:
|
||||
attributes:
|
||||
label: Upload translated file (optional)
|
||||
description: Upload translated file based on template.xml if you have translated it
|
||||
placeholder: translate the template in module/webui/locales/template.xml (optional)
|
||||
placeholder: translate the template in module/webui/locales/template.xml (compress in zip format before upload)
|
||||
validations:
|
||||
required: false
|
||||
|
||||
5
.github/workflows/build.yml
vendored
5
.github/workflows/build.yml
vendored
@@ -11,6 +11,9 @@ on:
|
||||
- 'module/**'
|
||||
workflow_dispatch:
|
||||
|
||||
env:
|
||||
GH_TOKEN: ${{ github.token }}
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: build
|
||||
@@ -46,7 +49,7 @@ jobs:
|
||||
curl -Ls https://cdn.jsdelivr.net/npm/marked/marked.min.js > module/webui/scripts/assets/marked.min.js
|
||||
|
||||
# OpenSSL
|
||||
wget -q $(curl -Ls https://api.github.com/repos/KOWX712/openssl-static-build/releases/latest | jq -r '.assets[].browser_download_url') -O openssl.tar.gz
|
||||
gh release download -R KOWX712/openssl-static-build -p "*.tar.gz" -O openssl.tar.gz
|
||||
tar -xzf openssl.tar.gz
|
||||
mv openssl-arm64 module/bin/arm64-v8a/openssl
|
||||
mv openssl-arm32 module/bin/armeabi-v7a/openssl
|
||||
|
||||
3
.github/workflows/crowdin.yml
vendored
3
.github/workflows/crowdin.yml
vendored
@@ -1,4 +1,4 @@
|
||||
name: Crowdin Action
|
||||
name: crowdin
|
||||
|
||||
on:
|
||||
push:
|
||||
@@ -21,7 +21,6 @@ jobs:
|
||||
with:
|
||||
upload_sources: true
|
||||
upload_translations: true
|
||||
auto_approve_imported: true
|
||||
download_translations: true
|
||||
skip_untranslated_files: false
|
||||
skip_untranslated_strings: true
|
||||
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,3 +1,4 @@
|
||||
__MACOSX
|
||||
.DS_Store
|
||||
applist.json
|
||||
changelog_draft.md
|
||||
|
||||
@@ -16,7 +16,7 @@ Configure Tricky Store target.txt with KSU WebUI.
|
||||
|
||||
### Magisk
|
||||
- Action button to open WebUI
|
||||
- Support [KSUWebUIStandalone](https://github.com/5ec1cff/KsuWebUIStandalone) and [MMRL](https://github.com/MMRLApp/MMRL)
|
||||
- Support [KSUWebUIStandalone](https://github.com/5ec1cff/KsuWebUIStandalone) and [WebUI X](https://github.com/MMRLApp/WebUI-X-Portable)
|
||||
- Automatic KSUWebUIStandalone install if none of them are installed.
|
||||
|
||||
### What Can This Module Do
|
||||
|
||||
13
changelog.md
13
changelog.md
@@ -8,14 +8,23 @@ GitHub release: [Tricky Addon: Update Target List](https://github.com/KOWX712/Tr
|
||||
Telegram channel: [KOW's Little World](https://t.me/kowchannel)
|
||||
|
||||
## Changelog
|
||||
### v4.1
|
||||
- **WebUI:** Added right-to-left language support in UI.
|
||||
- **WebUI:** Fixed 'Failed to fetch applist' in certain condition.
|
||||
- **Script:** Added auto security patch support for pif.prop.
|
||||
- **WebUI:** Added support for Dakkshesh's TrickyStore fork [(GitHub@beakthoven/TrickyStore)](https://github.com/beakthoven/TrickyStore).
|
||||
- **WebUI:** Added device props support for qwq233's TrickyStore fork (this will not modify system prop automatically).
|
||||
- **WebUI:** Added German (#78, @xxOrdulu52xx), Bengali, Persian translation.
|
||||
- **WebUI:** Updated Turkish, Italian, Japanese, Arabic translation. (@cvnertnc, @GRgabrix, @reindex-ot, @ZG089)
|
||||
|
||||
### v4.0
|
||||
- **WebUI:** Fixed `Failed to fetch secutiry patch` issue in most condition.
|
||||
- **WebUI:** Fixed `Failed to fetch security patch` issue in most condition.
|
||||
- **WebUI:** Added support for [qwq233's TrickyStore fork](https://github.com/qwq233/TrickyStore).
|
||||
- **WebUI:** Provide option to download latest canary version in about menu.
|
||||
- **action:** Removed MMRL from action redirect WebUI since MMRL no longer provide built-in WebUI. (#66, @ThanhCN0)
|
||||
- **WebUI:** Unknown keybox option no longer rely on internet connection.
|
||||
- **WebUI:** Fixed built-in update mechanism might fail in some condition. (@backslashxx)
|
||||
- **WebUI:** Translation service now is avaible on crowdin, view [translation guide](https://github.com/KOWX712/Tricky-Addon-Update-Target-List/blob/main/module/webui/locales/GUIDE.md) for more detail. You can reach our crowdin website in the WebUI langauge menu too.
|
||||
- **WebUI:** Translation service now is available on crowdin, view [translation guide](https://github.com/KOWX712/Tricky-Addon-Update-Target-List/blob/main/module/webui/locales/GUIDE.md) for more detail. You can reach our crowdin website in the WebUI language menu too.
|
||||
- **WebUI:** Added Ukrainian (#43, @StepanSad), Greek (#61, @Goku818) translation.
|
||||
- **WebUI:** Updated Japanese, Indonesian, Arabic, Polish, French, Portuguese, Ukrainian translation. (@reindex-ot, @Rem01Gaming, @ZG089, @Bladius2024, @GhostFRR, @SecretGogeta, [crowdin@IlliaS](https://crowdin.com/profile/illias))
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -118,12 +118,24 @@ release_note() {
|
||||
}
|
||||
|
||||
set_security_patch() {
|
||||
# Find pif.json
|
||||
[ -f "/data/adb/modules/playintegrityfix/pif.json" ] && PIF="/data/adb/modules/playintegrityfix/pif.json"
|
||||
[ -f "/data/adb/pif.json" ] && PIF="/data/adb/pif.json"
|
||||
[ -f "/data/adb/modules/playintegrityfix/custom.pif.json" ] && PIF="/data/adb/modules/playintegrityfix/custom.pif.json"
|
||||
# Look for security patch from PIF
|
||||
if [ -f "/data/adb/modules/playintegrityfix/pif.json" ]; then
|
||||
PIF="/data/adb/modules/playintegrityfix/pif.json"
|
||||
[ -f "/data/adb/pif.json" ] && PIF="/data/adb/pif.json"
|
||||
elif [ -f "/data/adb/modules/playintegrityfix/pif.prop" ]; then
|
||||
PIF="/data/adb/modules/playintegrityfix/pif.prop"
|
||||
[ -f "/data/adb/pif.prop" ] && PIF="/data/adb/pif.prop"
|
||||
elif [ -f "/data/adb/modules/playintegrityfix/custom.pif.json" ]; then
|
||||
PIF="/data/adb/modules/playintegrityfix/custom.pif.json"
|
||||
fi
|
||||
|
||||
security_patch=$(grep '"SECURITY_PATCH"' "$PIF" | sed 's/.*: "//; s/".*//')
|
||||
if [ -n "$PIF" ]; then
|
||||
if echo "$PIF" | grep -q "prop"; then
|
||||
security_patch=$(grep 'SECURITY_PATCH' "$PIF" | cut -d'=' -f2 | tr -d '\n')
|
||||
else
|
||||
security_patch=$(grep '"SECURITY_PATCH"' "$PIF" | sed 's/.*: "//; s/".*//')
|
||||
fi
|
||||
fi
|
||||
[ -z "$security_patch" ] && security_patch=$(getprop ro.build.version.security_patch) # Fallback
|
||||
|
||||
formatted_security_patch=$(echo "$security_patch" | sed 's/-//g')
|
||||
@@ -131,19 +143,23 @@ set_security_patch() {
|
||||
TODAY=$(date +%Y%m%d)
|
||||
if [ -n "$formatted_security_patch" ] && [ "$TODAY" -lt "$security_patch_after_1y" ]; then
|
||||
TS_version=$(grep "versionCode=" "/data/adb/modules/tricky_store/module.prop" | cut -d'=' -f2)
|
||||
# Official TrickyStore which supports custom security patch
|
||||
if [ "$TS_version" -ge 158 ]; then
|
||||
SECURITY_PATCH_FILE="/data/adb/tricky_store/security_patch.txt"
|
||||
printf "system=prop\nboot=%s\nvendor=%s\n" "$security_patch" "$security_patch" > "$SECURITY_PATCH_FILE"
|
||||
chmod 644 "$SECURITY_PATCH_FILE"
|
||||
# James Clef's TrickyStore fork (GitHub@qwq233/TrickyStore)
|
||||
elif grep -q "James" "/data/adb/modules/tricky_store/module.prop"; then
|
||||
if grep -q "James" "/data/adb/modules/tricky_store/module.prop" && ! grep -q "beakthoven" "/data/adb/modules/tricky_store/module.prop"; then
|
||||
SECURITY_PATCH_FILE="/data/adb/tricky_store/devconfig.toml"
|
||||
if grep -q "^securityPatch" "$SECURITY_PATCH_FILE"; then
|
||||
sed -i "s/^securityPatch .*/securityPatch = \"$security_patch\"/" "$SECURITY_PATCH_FILE"
|
||||
else
|
||||
echo "securityPatch = \"$security_patch\"" >> "$SECURITY_PATCH_FILE"
|
||||
if ! grep -q "^\\[deviceProps\\]" "$SECURITY_PATCH_FILE"; then
|
||||
echo "securityPatch = \"$security_patch\"" >> "$SECURITY_PATCH_FILE"
|
||||
else
|
||||
sed -i "s/^\[deviceProps\]/securityPatch = \"$security_patch\"\n&/" "$SECURITY_PATCH_FILE"
|
||||
fi
|
||||
fi
|
||||
# Dakkshesh's fork (GitHub@beakthoven/TrickyStore) or Official TrickyStore which supports custom security patch
|
||||
elif [ "$TS_version" -ge 158 ] || grep -q "beakthoven" "/data/adb/modules/tricky_store/module.prop"; then
|
||||
SECURITY_PATCH_FILE="/data/adb/tricky_store/security_patch.txt"
|
||||
printf "system=prop\nboot=%s\nvendor=%s\n" "$security_patch" "$security_patch" > "$SECURITY_PATCH_FILE"
|
||||
chmod 644 "$SECURITY_PATCH_FILE"
|
||||
# Other
|
||||
else
|
||||
resetprop ro.vendor.build.security_patch "$security_patch"
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
id=TA_utl
|
||||
name=Tricky Addon - Update Target List
|
||||
version=v4.0
|
||||
versionCode=538
|
||||
version=v4.1
|
||||
versionCode=572
|
||||
author=KOWX712
|
||||
description=A WebUI to conifgure tricky store target.txt
|
||||
updateJson=https://raw.githubusercontent.com/KOWX712/Tricky-Addon-Update-Target-List/main/update.json
|
||||
|
||||
@@ -108,12 +108,12 @@ echo "# This file is generated from service.sh to speed up load time" > "$OUTPUT
|
||||
# Get list of third party apps and specific system apps, then cache app name
|
||||
# Check Xposed module
|
||||
{
|
||||
pm list packages -3 2>/dev/null
|
||||
pm list packages -s | grep -E "$SYSTEM_APP" 2>/dev/null || true
|
||||
} | awk -F: '{print $2}' | while read -r PACKAGE; do
|
||||
pm list packages -3 </dev/null 2>&1 | cat | awk -F: '{print $2}' 2>/dev/null
|
||||
pm list packages -s </dev/null 2>&1 | cat | awk -F: '{print $2}' | grep -Ex "$SYSTEM_APP" 2>/dev/null || true
|
||||
} | while read -r PACKAGE; do
|
||||
# Get APK path for the package
|
||||
APK_PATH=$(pm path "$PACKAGE" 2>/dev/null | head -n1 | awk -F: '{print $2}')
|
||||
APP_NAME=$(aapt dump badging "$APK_PATH" 2>/dev/null | grep "application-label:" | sed "s/application-label://g; s/'//g")
|
||||
APP_NAME=$(aapt dump badging "$APK_PATH" 2>/dev/null | grep "application-label:" | sed "s/application-label://g; s/'//g" | tr -d '\n')
|
||||
[ -z "$APP_NAME" ] && APP_NAME="$PACKAGE"
|
||||
echo " {\"app_name\": \"$APP_NAME\", \"package_name\": \"$PACKAGE\"}," >> "$OUTPUT_APP"
|
||||
|
||||
|
||||
@@ -27,16 +27,14 @@
|
||||
<div class="header">
|
||||
<div id="title" data-i18n="header_title"></div><span id="module-version"></span>
|
||||
<button id="help-button" class="help-button">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="21px" viewBox="0 -1060 960 990" width="21px" fill="#6E6E6E"><path d="M478-240q21 0 35.5-14.5T528-290q0-21-14.5-35.5T478-340q-21 0-35.5 14.5T428-290q0 21 14.5 35.5T478-240Zm-36-154h74q0-33 7.5-52t42.5-52q26-26 41-49.5t15-56.5q0-56-41-86t-97-30q-57 0-92.5 30T342-618l66 26q5-18 22.5-39t53.5-21q32 0 48 17.5t16 38.5q0 20-12 37.5T506-526q-44 39-54 59t-10 73Zm38 314q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z" /></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="21px" viewBox="0 -960 960 960" width="21px"><path d="M478-240q21 0 35.5-14.5T528-290q0-21-14.5-35.5T478-340q-21 0-35.5 14.5T428-290q0 21 14.5 35.5T478-240Zm-36-154h74q0-33 7.5-52t42.5-52q26-26 41-49.5t15-56.5q0-56-41-86t-97-30q-57 0-92.5 30T342-618l66 26q5-18 22.5-39t53.5-21q32 0 48 17.5t16 38.5q0 20-12 37.5T506-526q-44 39-54 59t-10 73Zm38 314q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm0-80q134 0 227-93t93-227q0-134-93-227t-227-93q-134 0-227 93t-93 227q0 134 93 227t227 93Zm0-320Z" /></svg>
|
||||
</button>
|
||||
<div class="no-connection">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="20px" viewBox="0 -920 960 960" width="20px" fill="#6E6E6E"><path d="M790-56 414-434q-47 11-87.5 33T254-346l-84-86q32-32 69-56t79-42l-90-90q-41 21-76.5 46.5T84-516L0-602q32-32 66.5-57.5T140-708l-84-84 56-56 736 736-58 56Zm-310-64q-42 0-71-29.5T380-220q0-42 29-71t71-29q42 0 71 29t29 71q0 41-29 70.5T480-120Zm236-238-29-29-29-29-144-144q81 8 151.5 41T790-432l-74 74Zm160-158q-77-77-178.5-120.5T480-680q-21 0-40.5 1.5T400-674L298-776q44-12 89.5-18t92.5-6q142 0 265 53t215 145l-84 86Z" /></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="20px" viewBox="0 -960 960 960" width="20px"><path d="M790-56 414-434q-47 11-87.5 33T254-346l-84-86q32-32 69-56t79-42l-90-90q-41 21-76.5 46.5T84-516L0-602q32-32 66.5-57.5T140-708l-84-84 56-56 736 736-58 56Zm-310-64q-42 0-71-29.5T380-220q0-42 29-71t71-29q42 0 71 29t29 71q0 41-29 70.5T480-120Zm236-238-29-29-29-29-144-144q81 8 151.5 41T790-432l-74 74Zm160-158q-77-77-178.5-120.5T480-680q-21 0-40.5 1.5T400-674L298-776q44-12 89.5-18t92.5-6q142 0 265 53t215 145l-84 86Z" /></svg>
|
||||
</div>
|
||||
<div class="language-dropdown">
|
||||
<button class="language-button">
|
||||
<i class="language-icon">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="22px" viewBox="0 -960 960 960" width="22px"><path d="M480-80q-82 0-155-31.5t-127.5-86Q143-252 111.5-325T80-480q0-83 31.5-155.5t86-127Q252-817 325-848.5T480-880q83 0 155.5 31.5t127 86q54.5 54.5 86 127T880-480q0 82-31.5 155t-86 127.5q-54.5 54.5-127 86T480-80Zm0-82q26-36 45-75t31-83H404q12 44 31 83t45 75Zm-104-16q-18-33-31.5-68.5T322-320H204q29 50 72.5 87t99.5 55Zm208 0q56-18 99.5-55t72.5-87H638q-9 38-22.5 73.5T584-178ZM170-400h136q-3-20-4.5-39.5T300-480q0-21 1.5-40.5T306-560H170q-5 20-7.5 39.5T160-480q0 21 2.5 40.5T170-400Zm216 0h188q3-20 4.5-39.5T580-480q0-21-1.5-40.5T574-560H386q-3 20-4.5 39.5T380-480q0 21 1.5 40.5T386-400Zm268 0h136q5-20 7.5-39.5T800-480q0-21-2.5-40.5T790-560H654q3 20 4.5 39.5T660-480q0 21-1.5 40.5T654-400Zm-16-240h118q-29-50-72.5-87T584-782q18 33 31.5 68.5T638-640Zm-234 0h152q-12-44-31-83t-45-75q-26 36-45 75t-31 83Zm-200 0h118q9-38 22.5-73.5T376-782q-56 18-99.5 55T204-640Z"/></svg>
|
||||
</i>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="22px" viewBox="0 -960 960 960" width="22px"><path d="M480-80q-82 0-155-31.5t-127.5-86Q143-252 111.5-325T80-480q0-83 31.5-155.5t86-127Q252-817 325-848.5T480-880q83 0 155.5 31.5t127 86q54.5 54.5 86 127T880-480q0 82-31.5 155t-86 127.5q-54.5 54.5-127 86T480-80Zm0-82q26-36 45-75t31-83H404q12 44 31 83t45 75Zm-104-16q-18-33-31.5-68.5T322-320H204q29 50 72.5 87t99.5 55Zm208 0q56-18 99.5-55t72.5-87H638q-9 38-22.5 73.5T584-178ZM170-400h136q-3-20-4.5-39.5T300-480q0-21 1.5-40.5T306-560H170q-5 20-7.5 39.5T160-480q0 21 2.5 40.5T170-400Zm216 0h188q3-20 4.5-39.5T580-480q0-21-1.5-40.5T574-560H386q-3 20-4.5 39.5T380-480q0 21 1.5 40.5T386-400Zm268 0h136q5-20 7.5-39.5T800-480q0-21-2.5-40.5T790-560H654q3 20 4.5 39.5T660-480q0 21-1.5 40.5T654-400Zm-16-240h118q-29-50-72.5-87T584-782q18 33 31.5 68.5T638-640Zm-234 0h152q-12-44-31-83t-45-75q-26 36-45 75t-31 83Zm-200 0h118q9-38 22.5-73.5T376-782q-56 18-99.5 55T204-640Z"/></svg>
|
||||
</button>
|
||||
<div class="language-menu blur-box"></div>
|
||||
<div id="language-overlay" class="language-overlay"></div>
|
||||
@@ -84,7 +82,6 @@
|
||||
<li class="ripple-element" id="customkb" data-i18n="menu_set_custom_keybox"></li>
|
||||
<li class="ripple-element" id="boot-hash" data-i18n="menu_set_verified_boot_hash"></li>
|
||||
<li class="ripple-element" id="security-patch" data-i18n="menu_set_security_patch"></li>
|
||||
<li class="ripple-element" id="shortcut" data-i18n="menu_shortcut"></li>
|
||||
<li class="ripple-element" id="about" data-i18n="menu_about"></li>
|
||||
</ul>
|
||||
</div>
|
||||
@@ -293,14 +290,54 @@
|
||||
</div>
|
||||
|
||||
<!-- James' fork input -->
|
||||
<div id="james-mode-inputs" class="normal-mode-inputs hidden">
|
||||
<div id="devconfig-mode-inputs" class="normal-mode-inputs hidden">
|
||||
<div class="input-group">
|
||||
<label id="security_patch-james">Security Patch</label>
|
||||
<input type="text" id="james-patch" placeholder="2025-01-01" autocapitalize="none" oninput="formatDate(this)" maxlength="10">
|
||||
<label>Security Patch</label>
|
||||
<input type="text" id="devconfig-securityPatch" placeholder="2025-01-01" autocapitalize="none" oninput="formatDate(this)" maxlength="10">
|
||||
</div>
|
||||
<div class="input-group">
|
||||
<label id="os-james">OS Version</label>
|
||||
<input type="text" id="james-os" placeholder="34" maxlength="2" autocapitalize="none">
|
||||
<label>OS Version</label>
|
||||
<input type="text" id="devconfig-osVersion" placeholder="34" maxlength="2" autocapitalize="none">
|
||||
</div>
|
||||
<div class="input-group">
|
||||
<br>
|
||||
<label>Device Property</label>
|
||||
</div>
|
||||
<div class="input-group">
|
||||
<label>brand</label>
|
||||
<input type="text" id="devconfig-brand" placeholder="google" autocapitalize="none">
|
||||
</div>
|
||||
<div class="input-group">
|
||||
<label>device</label>
|
||||
<input type="text" id="devconfig-device" placeholder="oriole" autocapitalize="none">
|
||||
</div>
|
||||
<div class="input-group">
|
||||
<label>product</label>
|
||||
<input type="text" id="devconfig-product" placeholder="oriole_beta" autocapitalize="none">
|
||||
</div>
|
||||
<div class="input-group">
|
||||
<label>manufacturer</label>
|
||||
<input type="text" id="devconfig-manufacturer" placeholder="Google" autocapitalize="none">
|
||||
</div>
|
||||
<div class="input-group">
|
||||
<label>model</label>
|
||||
<input type="text" id="devconfig-model" placeholder="Pixel 6" autocapitalize="none">
|
||||
</div>
|
||||
<div class="input-group">
|
||||
<label>serial</label>
|
||||
<input type="text" id="devconfig-serial" placeholder="5e043839" autocapitalize="none">
|
||||
</div>
|
||||
<div class="input-group">
|
||||
<label>meid</label>
|
||||
<input type="text" id="devconfig-meid" placeholder="32b6af4d93aca6" autocapitalize="none">
|
||||
</div>
|
||||
<div class="input-group">
|
||||
<label>imei</label>
|
||||
<input type="text" id="devconfig-imei" placeholder="73598126407" autocapitalize="none">
|
||||
</div>
|
||||
<div class="input-group">
|
||||
<label>imei2</label>
|
||||
<input type="text" id="devconfig-imei2" placeholder="77983102465" autocapitalize="none">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
89
module/webui/locales/CONTRIBUTOR.md
Normal file
89
module/webui/locales/CONTRIBUTOR.md
Normal file
@@ -0,0 +1,89 @@
|
||||
# Translation Contributor List
|
||||
|
||||
## Arabic
|
||||
|
||||
- [ZG089](https://github.com/ZG089)
|
||||
|
||||
---
|
||||
|
||||
## Azerbaijani
|
||||
|
||||
- [mnasibzade](https://github.com/mnasibzade)
|
||||
|
||||
---
|
||||
|
||||
## Chinese (Simplified)
|
||||
|
||||
- [xiaokuqwq](https://github.com/xiaokuqwq)
|
||||
|
||||
---
|
||||
|
||||
## French
|
||||
|
||||
- [anaelle-dev](https://github.com/anaelle-dev)
|
||||
- [GhostFRR](https://github.com/GhostFRR)
|
||||
|
||||
---
|
||||
|
||||
## German
|
||||
|
||||
- [xxOrdulu52xx](https://github.com/xxOrdulu52xx)
|
||||
|
||||
---
|
||||
|
||||
## Greek
|
||||
|
||||
- [Goku818](https://github.com/Goku818)
|
||||
|
||||
---
|
||||
|
||||
## Indonesian
|
||||
|
||||
- [chisewaguri](https://github.com/chisewaguri)
|
||||
- [Rem01Gaming](https://github.com/Rem01Gaming)
|
||||
|
||||
---
|
||||
|
||||
## Italian
|
||||
|
||||
- [luigimak](https://github.com/luigimak)
|
||||
- [GRgabrix](https://github.com/GRgabrix)
|
||||
|
||||
---
|
||||
|
||||
## Japanese
|
||||
|
||||
- [reindex-ot](https://github.com/reindex-ot)
|
||||
|
||||
---
|
||||
|
||||
### Polish
|
||||
|
||||
- [Bladius2024](https://github.com/Bladius2024)
|
||||
|
||||
---
|
||||
|
||||
## Portuguese (Brazilian)
|
||||
|
||||
- [JeanxPereira](https://github.com/JeanxPereira)
|
||||
- [SecretGogeta](https://github.com/SecretGogeta)
|
||||
|
||||
---
|
||||
|
||||
## Spanish
|
||||
|
||||
- [Keinta15](https://github.com/Keinta15)
|
||||
|
||||
---
|
||||
|
||||
## Turkish
|
||||
|
||||
- [berkmirsatk](https://github.com/berkmirsatk)
|
||||
- [cvnertnc](https://github.com/cvnertnc)
|
||||
|
||||
---
|
||||
|
||||
## Ukrainian
|
||||
|
||||
- [StepanSad](https://github.com/StepanSad)
|
||||
- [IlliaS](https://github.com/IlliaS)
|
||||
@@ -3,11 +3,11 @@
|
||||
## Update Existing Language
|
||||
|
||||
- Update translation in [Crowdin](https://crowdin.com/project/TA_utl).
|
||||
- Since crowdin didn't preserve authorship, you can also leave a message in comment section of the pull request that opened by crowdin bot so I can give credit.
|
||||
- Add your name to [translation contibutor list](https://github.com/KOWX712/Tricky-Addon-Update-Target-List/blob/main/module/webui/locales/CONTRIBUTOR.md) (Issue/Pull Request).
|
||||
|
||||
---
|
||||
|
||||
## Add a New Language
|
||||
|
||||
- Create you translation based on [template](https://github.com/KOWX712/Tricky-Addon-Update-Target-List/blob/main/module/webui/locales/template.xml).
|
||||
- Create an [issues](https://github.com/KOWX712/Tricky-Addon-Update-Target-List/issues/new/choose) for language request and upload translated file.
|
||||
- Create an [issues](https://github.com/KOWX712/Tricky-Addon-Update-Target-List/issues/new/choose) for language request and upload translated file in zip format (compressed).
|
||||
|
||||
@@ -1,14 +1,17 @@
|
||||
{
|
||||
"ar": "العربية",
|
||||
"az": "Azərbaycanca",
|
||||
"bn": "বাংলা",
|
||||
"de": "Deutsch",
|
||||
"el": "Ελληνικά",
|
||||
"en": "English",
|
||||
"es": "Español",
|
||||
"es-ES": "Español",
|
||||
"fa": "فارسی",
|
||||
"fr": "Français",
|
||||
"id": "Bahasa Indonesia",
|
||||
"it": "Italiano",
|
||||
"ja": "日本語",
|
||||
"pt": "Português",
|
||||
"pt-BR": "Português",
|
||||
"pl": "Polski",
|
||||
"ru": "Русский",
|
||||
"tl": "Filipino",
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="system_default">الإعدادات الافتراضية للنظام</string>
|
||||
<string name="more_language">المزيد</string>
|
||||
<!-- Header -->
|
||||
<string name="header_title">Tricky Addon</string>
|
||||
<!-- Help Menu-->
|
||||
@@ -18,7 +19,7 @@
|
||||
<string name="help_add_system_app">إضافة تطبيق نظام</string>
|
||||
<string name="help_add_system_app_description">إضافة تطبيق نظام محدد إلى قائمة التطبيقات.</string>
|
||||
<string name="help_set_keybox">تعيين AOSP و Keybox صالح</string>
|
||||
<string name="help_set_keybox_description">استبدال tricky store keybox.xml. سيتم استبدال keybox AOSP إذا لم يكن هناك keybox صالح آخر. يتطلب خيار keybox الصالح اتصالاً بالإنترنت.</string>
|
||||
<string name="help_set_keybox_description">استبدال tricky store keybox.xml. يتطلب خيار keybox الصالح اتصالاً بالإنترنت.</string>
|
||||
<string name="help_set_custom_keybox">تعيين Keybox مخصص</string>
|
||||
<string name="help_set_custom_keybox_description">استيراد keybox من تخزين جهازك. يدعم فقط ملف xml.</string>
|
||||
<string name="help_set_security_patch">تعيين تصحيح الأمان</string>
|
||||
@@ -52,7 +53,6 @@
|
||||
<string name="menu_set_verified_boot_hash">تعيين تجزئة التمهيد الموثوق</string>
|
||||
<string name="menu_set_security_patch">تعيين تصحيح الأمان</string>
|
||||
<string name="menu_about">حول</string>
|
||||
<string name="menu_shortcut">إنشاء اختصار على الشاشة الرئيسية</string>
|
||||
<!-- Boot Hash -->
|
||||
<string name="boot_hash_title">تجزئة التمهيد</string>
|
||||
<string name="boot_hash_input_placeholder">الصق تجزئة التمهيد الموثوق هنا</string>
|
||||
@@ -62,6 +62,7 @@
|
||||
<string name="about_module_name_line2">تحديث قائمة الأهداف</string>
|
||||
<string name="about_by">بواسطة</string>
|
||||
<string name="about_telegram_channel">قناة التليجرام</string>
|
||||
<string name="about_canary_update">تحديث إلى أحدث إصدار تجريبي</string>
|
||||
<string name="about_disclaimer">هذه الوحدة ليست جزءًا من وحدة Tricky Store. لا تقم بالإبلاغ عن أي مشاكل إلى Tricky Store إذا واجهت أيًا منها.</string>
|
||||
<string name="about_acknowledgment">شكر وتقدير</string>
|
||||
<!-- Prompt -->
|
||||
@@ -77,7 +78,9 @@
|
||||
<string name="prompt_save_error">فشل في حفظ التكوين</string>
|
||||
<string name="prompt_uninstall_prompt">سيتم إزالة WebUI بعد إعادة التشغيل</string>
|
||||
<string name="prompt_uninstall_failed">فشل في إلغاء تثبيت WebUI</string>
|
||||
<string name="prompt_checking_update">جار التحقق من التحديثات...</string>
|
||||
<string name="prompt_new_update">تحديث جديد متاح!</string>
|
||||
<string name="prompt_no_update">لا توجد تحديثات متوفرة حاليا</string>
|
||||
<string name="prompt_downloading">جارٍ تنزيل التحديث الجديد...</string>
|
||||
<string name="prompt_downloaded">اكتمل التنزيل</string>
|
||||
<string name="prompt_download_fail">فشل في تنزيل التحديث</string>
|
||||
@@ -91,7 +94,6 @@
|
||||
<string name="prompt_no_file_selected">لم يتم اختيار أي ملف</string>
|
||||
<string name="prompt_system_app_not_found">لم يتم العثور على تطبيق النظام</string>
|
||||
<string name="prompt_system_app_error">فشل في إضافة تطبيق النظام</string>
|
||||
<string name="prompt_shortcut_created">تم إنشاء اختصار على الشاشة الرئيسية</string>
|
||||
<!-- Security Patch -->
|
||||
<string name="security_patch_title">تصحيح الأمان</string>
|
||||
<string name="security_patch_advanced_mode">متقدم</string>
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
<string name="help_add_system_app">Sistem Tətbiqi Əlavə et</string>
|
||||
<string name="help_add_system_app_description">Müəyyən bir sistem tətbiqini tətbiq siyahısına əlavə et.</string>
|
||||
<string name="help_set_keybox">AOSP & Etibarlı Keybox təyin et</string>
|
||||
<string name="help_set_keybox_description">Tricky store keybox.xml-ni dəyişdir. Əgər etibarlı keybox yoxdursa, AOSP keybox dəyişdiriləcək. Etibarlı keybox seçimi İnternet bağlantısı tələb edir.</string>
|
||||
<string name="help_set_keybox_description">Tricky store keybox.xml-ni dəyişdir. Etibarlı keybox seçimi İnternet bağlantısı tələb edir.</string>
|
||||
<string name="help_set_custom_keybox">Özəl Keybox təyin et</string>
|
||||
<string name="help_set_custom_keybox_description">Keybox-u cihaz yaddaşından idxal et. Yalnız xml faylını dəstəkləyir.</string>
|
||||
<string name="help_set_security_patch">Təhlükəsizlik Təkmilləşdirməsini təyin et</string>
|
||||
@@ -52,7 +52,6 @@
|
||||
<string name="menu_set_verified_boot_hash">Təsdiqlənmiş Boot Hash təyin et</string>
|
||||
<string name="menu_set_security_patch">Təhlükəsizlik Təkmilləşdirməsini təyin et</string>
|
||||
<string name="menu_about">Haqqında</string>
|
||||
<string name="menu_shortcut">Ana ekran qısayolu yarat</string>
|
||||
<!-- Boot Hash -->
|
||||
<string name="boot_hash_title">Boot Hash</string>
|
||||
<string name="boot_hash_input_placeholder">Təsdiqlənmiş Boot Hash-ı buraya yapışdırın</string>
|
||||
@@ -91,7 +90,6 @@
|
||||
<string name="prompt_no_file_selected">Fayl seçilməyib</string>
|
||||
<string name="prompt_system_app_not_found">Sistem tətbiqi tapılmadı</string>
|
||||
<string name="prompt_system_app_error">Sistem tətbiqini əlavə etmək mümkün olmadı</string>
|
||||
<string name="prompt_shortcut_created">Ana ekran qısayolu yaradıldı</string>
|
||||
<!-- Security Patch -->
|
||||
<string name="security_patch_title">Təhlükəsizlik Təkmilləşdirməsi</string>
|
||||
<string name="security_patch_advanced_mode">Ətraflı</string>
|
||||
|
||||
120
module/webui/locales/strings/bn.xml
Normal file
120
module/webui/locales/strings/bn.xml
Normal file
@@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="system_default">সিস্টেম পূর্ব-নির্ধারিত</string>
|
||||
<string name="more_language">আরো</string>
|
||||
<!-- Header -->
|
||||
<!-- Help Menu-->
|
||||
<string name="help_help_instructions">নির্দেশনা</string>
|
||||
<string name="help_save_and_update">সেভ করুন</string>
|
||||
<string name="help_save_and_update_description">বর্তমান কনফিগারেশন target.txt এ সেভ করুন।</string>
|
||||
<string name="help_refresh">রিফ্রেশ</string>
|
||||
<string name="help_refresh_description">অ্যাপ তালিকা এবং এক্সক্লুড তালিকা রিফ্রেশ করুন।</string>
|
||||
<string name="help_select_deselect">সব নির্বাচন করুন এবং নির্বাচন প্রত্যাহার করুন</string>
|
||||
<string name="help_select_description">বর্তমান ইন্টারফেসে সব অ্যাপ নির্বাচন করুন বা নির্বাচন প্রত্যাহার করুন।</string>
|
||||
<string name="help_select_denylist">DenyList থেকে নির্বাচন করুন</string>
|
||||
<string name="help_select_denylist_description">শুধুমাত্র Magisk এ উপলব্ধ, DenyList এ থাকা অ্যাপগুলি নির্বাচন করুন। সুপারিশকৃত।</string>
|
||||
<string name="help_deselect_unnecessary">অপ্রয়োজনীয় নির্বাচন প্রত্যাহার করুন</string>
|
||||
<string name="help_deselect_unnecessary_description">অপ্রয়োজনীয় বিভাগ: Xposed মডিউল, root ম্যানেজার, root-সম্পর্কিত অ্যাপ, এবং সাধারণ অ্যাপ যা কখনও bootloader স্ট্যাটাস চেক করে না। এই অপশন ইন্টারনেট সংযোগ প্রয়োজন।</string>
|
||||
<string name="help_add_system_app">সিস্টেম অ্যাপ যোগ করুন</string>
|
||||
<string name="help_add_system_app_description">অ্যাপ তালিকায় নির্দিষ্ট সিস্টেম অ্যাপ যোগ করুন।</string>
|
||||
<string name="help_set_keybox">AOSP এবং Valid Keybox সেট করুন</string>
|
||||
<string name="help_set_keybox_description">Tricky store keybox.xml প্রতিস্থাপন করুন। Valid keybox অপশন ইন্টারনেট সংযোগ প্রয়োজন এবং সবসময় উপলব্ধ নয়।</string>
|
||||
<string name="help_set_custom_keybox">Custom Keybox সেট করুন</string>
|
||||
<string name="help_set_custom_keybox_description">আপনার ডিভাইস স্টোরেজ থেকে keybox ইমপোর্ট করুন। শুধুমাত্র xml ফাইল সমর্থন করে।</string>
|
||||
<string name="help_set_security_patch">Security Patch সেট করুন</string>
|
||||
<string name="help_set_security_patch_description">Custom security patch spoof সেট করুন। Auto config PIF মডিউল থেকে security patch ব্যবহার করবে। খালি রাখুন এবং সেভ করুন auto config নিষ্ক্রিয় করতে।</string>
|
||||
<string name="help_set_verified_boot_hash">Verified Boot Hash সেট করুন</string>
|
||||
<string name="help_set_verified_boot_hash_description">Key Attestation Demo থেকে verifiedBootHash মান পান। ro.boot.vbmeta.digest রিসেট করে অস্বাভাবিক boot state ঠিক করুন।</string>
|
||||
<!-- Update -->
|
||||
<string name="update_update_available">একটি নতুন সংস্করণ প্রস্তুত</string>
|
||||
<string name="update_redirect_to_release">সর্বশেষ সংস্করণ ডাউনলোড করতে ট্যাপ করুন</string>
|
||||
<string name="update_changelog">পরিবর্তন তালিকা</string>
|
||||
<string name="update_install">ইনস্টল করুন</string>
|
||||
<string name="update_reboot">রিবুট</string>
|
||||
<!-- Search -->
|
||||
<string name="search_bar_search_placeholder">খুঁজুন</string>
|
||||
<!-- Functional Button -->
|
||||
<string name="functional_button_save_and_update_button">সেভ করুন</string>
|
||||
<string name="functional_button_uninstall_webui">WebUI আনইনস্টল করুন</string>
|
||||
<!-- Loading -->
|
||||
<string name="loading_loading">লোড হচ্ছে...</string>
|
||||
<!-- Menu -->
|
||||
<string name="menu_refresh">রিফ্রেশ</string>
|
||||
<string name="menu_select_all">সব নির্বাচন করুন</string>
|
||||
<string name="menu_deselect_all">সমস্ত নির্বাচন প্রত্যাহার করুন</string>
|
||||
<string name="menu_select_denylist">DenyList থেকে নির্বাচন করুন</string>
|
||||
<string name="menu_deselect_unnecessary">অপ্রয়োজনীয় নির্বাচন প্রত্যাহার করুন</string>
|
||||
<string name="menu_add_system_app">সিস্টেম অ্যাপ যোগ করুন</string>
|
||||
<string name="menu_set_aosp_keybox">AOSP Keybox সেট করুন</string>
|
||||
<string name="menu_set_unknown_keybox">Unknown Keybox সেট করুন</string>
|
||||
<string name="menu_set_valid_keybox">Valid Keybox সেট করুন</string>
|
||||
<string name="menu_set_custom_keybox">Custom Keybox সেট করুন</string>
|
||||
<string name="menu_set_verified_boot_hash">Verified Boot Hash সেট করুন</string>
|
||||
<string name="menu_set_security_patch">Security Patch সেট করুন</string>
|
||||
<string name="menu_about">সম্পর্কে</string>
|
||||
<!-- Boot Hash -->
|
||||
<string name="boot_hash_input_placeholder">আপনার verified Boot Hash এখানে পেস্ট করুন</string>
|
||||
<string name="boot_hash_save_button">সেভ করুন</string>
|
||||
<!-- About -->
|
||||
<string name="about_by">দ্বারা</string>
|
||||
<string name="about_telegram_channel">টেলিগ্রাম চ্যানেল</string>
|
||||
<string name="about_canary_update">সর্বশেষ canary সংস্করণে আপডেট করুন</string>
|
||||
<string name="about_disclaimer">এই মডিউলটি Tricky Store মডিউলের অংশ নয়। সমস্যা হলে Tricky Store এ রিপোর্ট করবেন না।</string>
|
||||
<string name="about_acknowledgment">কৃতজ্ঞতা স্বীকার</string>
|
||||
<!-- Prompt -->
|
||||
<string name="prompt_no_internet">অনুগ্রহ করে আপনার ইন্টারনেট সংযোগ চেক করুন।</string>
|
||||
<string name="prompt_aosp_key_set">AOSP keybox সফলভাবে সেট হয়েছে</string>
|
||||
<string name="prompt_key_set_error">Keybox আপডেট করতে ব্যর্থ</string>
|
||||
<string name="prompt_unknown_key_set">Unknown keybox সফলভাবে সেট হয়েছে</string>
|
||||
<string name="prompt_valid_key_set">Valid keybox সফলভাবে সেট হয়েছে</string>
|
||||
<string name="prompt_no_valid">কোন valid keybox পাওয়া যায়নি।</string>
|
||||
<string name="prompt_boot_hash_set">Verified Boot Hash সফলভাবে সেভ হয়েছে</string>
|
||||
<string name="prompt_boot_hash_set_error">Verified Boot Hash আপডেট করতে ব্যর্থ</string>
|
||||
<string name="prompt_saved_target">কনফিগ target.txt এ সেভ হয়েছে</string>
|
||||
<string name="prompt_save_error">কনফিগ সেভ করতে ব্যর্থ</string>
|
||||
<string name="prompt_uninstall_prompt">রিবুটের পর WebUI সরানো হবে</string>
|
||||
<string name="prompt_uninstall_failed">WebUI আনইনস্টল করতে ব্যর্থ</string>
|
||||
<string name="prompt_checking_update">হালনাগাদের জন্য পরীক্ষা করা হচ্ছে...</string>
|
||||
<string name="prompt_new_update">একটি নতুন আপডেট উপলব্ধ</string>
|
||||
<string name="prompt_no_update">বর্তমানে কোন আপডেট উপলব্ধ নেই</string>
|
||||
<string name="prompt_downloading">নতুন আপডেট ডাউনলোড হচ্ছে...</string>
|
||||
<string name="prompt_downloaded">ডাউনলোড সম্পন্ন হয়েছে</string>
|
||||
<string name="prompt_download_fail">আপডেট ডাউনলোড করতে ব্যর্থ</string>
|
||||
<string name="prompt_installing">আপডেট ইন্সটল হচ্ছে...</string>
|
||||
<string name="prompt_installed">সফলভাবে ইন্সটল হয়েছে, এখন রিবুট করুন।</string>
|
||||
<string name="prompt_install_fail">ইন্সটল করতে ব্যর্থ, অনুগ্রহ করে ম্যানুয়ালি আপডেট করুন</string>
|
||||
<string name="prompt_rebooting">রিবুট হচ্ছে...</string>
|
||||
<string name="prompt_reboot_fail">রিবুট করতে ব্যর্থ, অনুগ্রহ করে ম্যানুয়ালি রিবুট করুন</string>
|
||||
<string name="prompt_custom_key_set">Custom keybox সফলভাবে সেট হয়েছে</string>
|
||||
<string name="prompt_custom_key_set_error">Custom keybox সেট করতে ব্যর্থ</string>
|
||||
<string name="prompt_no_file_selected">কোনো ফাইল সিলেক্ট করা হয় নি</string>
|
||||
<string name="prompt_system_app_not_found">সিস্টেম অ্যাপ পাওয়া যায়নি</string>
|
||||
<string name="prompt_system_app_error">সিস্টেম অ্যাপ যোগ করতে ব্যর্থ</string>
|
||||
<!-- Security Patch -->
|
||||
<string name="security_patch_advanced_mode">অগ্রসর</string>
|
||||
<string name="security_patch_get_date">Security Patch Date পান</string>
|
||||
<string name="security_patch_auto">অটো</string>
|
||||
<string name="security_patch_save">সেভ করুন</string>
|
||||
<string name="security_patch_fetching">আনয়ন হচ্ছে...</string>
|
||||
<string name="security_patch_fetched">সম্পন্ন</string>
|
||||
<string name="security_patch_get_failed">Security patch date আনয়ন করতে ব্যর্থ</string>
|
||||
<string name="security_patch_unable_to_connect">source.android.com এর সাথে সংযোগ করতে অক্ষম</string>
|
||||
<string name="security_patch_auto_success">Auto config সফলভাবে সক্রিয় হয়েছে</string>
|
||||
<string name="security_patch_auto_failed">Auto config সক্রিয় করতে ব্যর্থ</string>
|
||||
<string name="security_patch_save_success">Security patch সফলভাবে সেভ হয়েছে</string>
|
||||
<string name="security_patch_save_failed">Security patch সেভ করতে ব্যর্থ</string>
|
||||
<string name="security_patch_value_empty">Security patch কনফিগারেশন নিষ্ক্রিয়</string>
|
||||
<string name="security_patch_invalid_all">অবৈধ ফর্ম্যাট</string>
|
||||
<string name="security_patch_invalid_boot">অবৈধ boot ফর্ম্যাট</string>
|
||||
<string name="security_patch_invalid_system">অবৈধ system ফর্ম্যাট</string>
|
||||
<string name="security_patch_invalid_vendor">অবৈধ vendor ফর্ম্যাট</string>
|
||||
<!-- Add System App -->
|
||||
<string name="add_system_app_title">সিস্টেম অ্যাপ যোগ করুন</string>
|
||||
<string name="add_system_app_add">যোগ করুন</string>
|
||||
<string name="add_system_app_current_list">বর্তমান সিস্টেম অ্যাপ তালিকা</string>
|
||||
<!-- Uninstall confirmation -->
|
||||
<string name="confirmation_uninstall_title">আনইনস্টল নিশ্চিত করুন?</string>
|
||||
<string name="confirmation_uninstall_message">আপনি কি নিশ্চিত যে আপনি Tricky Addon আনইনস্টল করতে চান</string>
|
||||
<string name="confirmation_uninstall_cancel">ক্যানসেল করুন</string>
|
||||
<string name="confirmation_uninstall_confirm">নিশ্চিত করুন</string>
|
||||
</resources>
|
||||
123
module/webui/locales/strings/de.xml
Normal file
123
module/webui/locales/strings/de.xml
Normal file
@@ -0,0 +1,123 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="system_default">Systemstandard</string>
|
||||
<string name="more_language">Mehr</string>
|
||||
<!-- Header -->
|
||||
<!-- Help Menu-->
|
||||
<string name="help_help_instructions">Anleitung</string>
|
||||
<string name="help_save_and_update">Speichern</string>
|
||||
<string name="help_save_and_update_description">Aktuelle Konfiguration in target.txt speichern.</string>
|
||||
<string name="help_refresh">Aktualisieren</string>
|
||||
<string name="help_refresh_description">App-Liste und Ausschlussliste aktualisieren.</string>
|
||||
<string name="help_select_deselect">Alle auswählen & abwählen</string>
|
||||
<string name="help_select_description">Alle Apps in der aktuellen Ansicht auswählen oder abwählen.</string>
|
||||
<string name="help_select_denylist">Aus DenyList auswählen</string>
|
||||
<string name="help_select_denylist_description">Nur in Magisk verfügbar, wähle Apps aus der DenyList aus. Empfohlen.</string>
|
||||
<string name="help_deselect_unnecessary">Unnötige abwählen</string>
|
||||
<string name="help_deselect_unnecessary_description">Unnötige Kategorie: Xposed-Module, Root-Manager, Root-bezogene Apps und allgemeine Apps, die den Bootloader-Status nie prüfen. Diese Option benötigt eine Internetverbindung.</string>
|
||||
<string name="help_add_system_app">System-App hinzufügen</string>
|
||||
<string name="help_add_system_app_description">Füge eine bestimmte System-App zur App-Liste hinzu.</string>
|
||||
<string name="help_set_keybox">AOSP- & gültige Keybox setzen</string>
|
||||
<string name="help_set_keybox_description">Ersetze tricky store keybox.xml. Die gültige Keybox-Option benötigt eine Internetverbindung und ist nicht immer verfügbar.</string>
|
||||
<string name="help_set_custom_keybox">Benutzerdefinierte Keybox setzen</string>
|
||||
<string name="help_set_custom_keybox_description">Importiere eine Keybox aus dem Gerätespeicher. Nur XML-Dateien werden unterstützt.</string>
|
||||
<string name="help_set_security_patch">Sicherheitspatch setzen</string>
|
||||
<string name="help_set_security_patch_description">Benutzerdefiniertes Sicherheitspatch-Spoofing setzen. Auto-Konfiguration verwendet den Sicherheitspatch vom PIF-Modul. Leer lassen und speichern, um Auto-Konfiguration zu deaktivieren.</string>
|
||||
<string name="help_set_verified_boot_hash">Verifizierten Boot-Hash setzen</string>
|
||||
<string name="help_set_verified_boot_hash_description">Wert „verifiedBootHash“ aus der Key Attestation Demo abrufen. Behebt einen abnormalen Bootzustand durch Zurücksetzen von ro.boot.vbmeta.digest.</string>
|
||||
<!-- Update -->
|
||||
<string name="update_update_available">Eine neue Version ist verfügbar</string>
|
||||
<string name="update_redirect_to_release">Tippe, um die neueste Version herunterzuladen</string>
|
||||
<string name="update_changelog">Änderungsprotokoll</string>
|
||||
<string name="update_install">Installieren</string>
|
||||
<string name="update_reboot">Neustart</string>
|
||||
<!-- Search -->
|
||||
<string name="search_bar_search_placeholder">Suchen</string>
|
||||
<!-- Functional Button -->
|
||||
<string name="functional_button_save_and_update_button">Speichern</string>
|
||||
<string name="functional_button_uninstall_webui">WebUI deinstallieren</string>
|
||||
<!-- Loading -->
|
||||
<string name="loading_loading">Lädt...</string>
|
||||
<!-- Menu -->
|
||||
<string name="menu_refresh">Aktualisieren</string>
|
||||
<string name="menu_select_all">Alle auswählen</string>
|
||||
<string name="menu_deselect_all">Auswahl aufheben</string>
|
||||
<string name="menu_select_denylist">Aus DenyList auswählen</string>
|
||||
<string name="menu_deselect_unnecessary">Unnötige abwählen</string>
|
||||
<string name="menu_add_system_app">System-App hinzufügen</string>
|
||||
<string name="menu_set_aosp_keybox">AOSP-Keybox setzen</string>
|
||||
<string name="menu_set_unknown_keybox">Unbekannte Keybox setzen</string>
|
||||
<string name="menu_set_valid_keybox">Gültige Keybox setzen</string>
|
||||
<string name="menu_set_custom_keybox">Benutzerdefinierte Keybox setzen</string>
|
||||
<string name="menu_set_verified_boot_hash">Verifizierten Boot-Hash setzen</string>
|
||||
<string name="menu_set_security_patch">Sicherheitspatch setzen</string>
|
||||
<string name="menu_about">Über</string>
|
||||
<!-- Boot Hash -->
|
||||
<string name="boot_hash_title">Boot-Hash</string>
|
||||
<string name="boot_hash_input_placeholder">Füge hier deinen verifizierten Boot-Hash ein</string>
|
||||
<string name="boot_hash_save_button">Speichern</string>
|
||||
<!-- About -->
|
||||
<string name="about_module_name_line2">Ziel-Liste aktualisieren</string>
|
||||
<string name="about_by">von</string>
|
||||
<string name="about_telegram_channel">Telegram-Kanal</string>
|
||||
<string name="about_canary_update">Auf die neueste Canary-Version aktualisieren</string>
|
||||
<string name="about_disclaimer">Dieses Modul ist kein Teil des Tricky Store Moduls. BITTE melde keine Probleme an Tricky Store.</string>
|
||||
<string name="about_acknowledgment">Danksagung</string>
|
||||
<!-- Prompt -->
|
||||
<string name="prompt_no_internet">Bitte überprüfe deine Internetverbindung</string>
|
||||
<string name="prompt_aosp_key_set">AOSP-Keybox erfolgreich gesetzt</string>
|
||||
<string name="prompt_key_set_error">Fehler beim Aktualisieren der Keybox</string>
|
||||
<string name="prompt_unknown_key_set">Unbekannte Keybox erfolgreich gesetzt</string>
|
||||
<string name="prompt_valid_key_set">Gültige Keybox erfolgreich gesetzt</string>
|
||||
<string name="prompt_no_valid">Keine gültige Keybox gefunden.</string>
|
||||
<string name="prompt_boot_hash_set">Verifizierter Boot-Hash erfolgreich gespeichert</string>
|
||||
<string name="prompt_boot_hash_set_error">Fehler beim Speichern des verifizierten Boot-Hash</string>
|
||||
<string name="prompt_saved_target">Konfiguration in target.txt gespeichert</string>
|
||||
<string name="prompt_save_error">Fehler beim Speichern der Konfiguration</string>
|
||||
<string name="prompt_uninstall_prompt">WebUI wird nach dem Neustart entfernt</string>
|
||||
<string name="prompt_uninstall_failed">Fehler bei der Deinstallation der WebUI</string>
|
||||
<string name="prompt_checking_update">Suche nach Updates...</string>
|
||||
<string name="prompt_new_update">Ein neues Update ist verfügbar!</string>
|
||||
<string name="prompt_no_update">Derzeit sind keine Updates verfügbar</string>
|
||||
<string name="prompt_downloading">Neues Update wird heruntergeladen...</string>
|
||||
<string name="prompt_downloaded">Download abgeschlossen</string>
|
||||
<string name="prompt_download_fail">Fehler beim Herunterladen des Updates</string>
|
||||
<string name="prompt_installing">Update wird installiert...</string>
|
||||
<string name="prompt_installed">Erfolgreich installiert, jetzt neu starten.</string>
|
||||
<string name="prompt_install_fail">Fehler bei der Installation, bitte manuell aktualisieren</string>
|
||||
<string name="prompt_rebooting">Neustart...</string>
|
||||
<string name="prompt_reboot_fail">Neustart fehlgeschlagen, bitte manuell neu starten</string>
|
||||
<string name="prompt_custom_key_set">Benutzerdefinierte Keybox erfolgreich gesetzt</string>
|
||||
<string name="prompt_custom_key_set_error">Fehler beim Setzen der benutzerdefinierten Keybox</string>
|
||||
<string name="prompt_no_file_selected">Keine Datei ausgewählt</string>
|
||||
<string name="prompt_system_app_not_found">System-App nicht gefunden</string>
|
||||
<string name="prompt_system_app_error">Fehler beim Hinzufügen der System-App</string>
|
||||
<!-- Security Patch -->
|
||||
<string name="security_patch_title">Sicherheitspatch</string>
|
||||
<string name="security_patch_advanced_mode">Erweitert</string>
|
||||
<string name="security_patch_get_date">Sicherheitspatch-Datum abrufen</string>
|
||||
<string name="security_patch_auto">Automatisch</string>
|
||||
<string name="security_patch_save">Speichern</string>
|
||||
<string name="security_patch_fetching">Abrufen...</string>
|
||||
<string name="security_patch_fetched">Fertig</string>
|
||||
<string name="security_patch_get_failed">Fehler beim Abrufen des Sicherheitspatch-Datums</string>
|
||||
<string name="security_patch_unable_to_connect">Keine Verbindung zu source.android.com möglich</string>
|
||||
<string name="security_patch_auto_success">Automatische Konfiguration erfolgreich aktiviert</string>
|
||||
<string name="security_patch_auto_failed">Fehler beim Aktivieren der automatischen Konfiguration</string>
|
||||
<string name="security_patch_save_success">Sicherheitspatch erfolgreich gespeichert</string>
|
||||
<string name="security_patch_save_failed">Fehler beim Speichern des Sicherheitspatch</string>
|
||||
<string name="security_patch_value_empty">Sicherheitspatch-Konfiguration ist deaktiviert</string>
|
||||
<string name="security_patch_invalid_all">Ungültiges Format</string>
|
||||
<string name="security_patch_invalid_boot">Ungültiges Boot-Format</string>
|
||||
<string name="security_patch_invalid_system">Ungültiges System-Format</string>
|
||||
<string name="security_patch_invalid_vendor">Ungültiges Vendor-Format</string>
|
||||
<!-- Add System App -->
|
||||
<string name="add_system_app_title">System-App hinzufügen</string>
|
||||
<string name="add_system_app_add">Hinzufügen</string>
|
||||
<string name="add_system_app_current_list">Aktuelle Liste der System-Apps</string>
|
||||
<!-- Uninstall confirmation -->
|
||||
<string name="confirmation_uninstall_title">Deinstallation bestätigen?</string>
|
||||
<string name="confirmation_uninstall_message">Möchtest du Tricky Addon wirklich deinstallieren?</string>
|
||||
<string name="confirmation_uninstall_cancel">Abbrechen</string>
|
||||
<string name="confirmation_uninstall_confirm">Bestätigen</string>
|
||||
</resources>
|
||||
@@ -18,7 +18,7 @@
|
||||
<string name="help_add_system_app">Πρόσθεσε Εφαρμογή Συστήματος</string>
|
||||
<string name="help_add_system_app_description">Πρόσθεσε συγκεκριμένη εφαρμογή συστήματος στη λίστα εφαρμογών.</string>
|
||||
<string name="help_set_keybox">Όρισε AOSP & Έγκυρο Keybox</string>
|
||||
<string name="help_set_keybox_description">Αντικατέστησε το tricky store keybox.xml. Το AOSP keybox θα αντικατασταθεί αν δεν υπάρχει έγκυρο keybox. Η επιλογή valid keybox απαιτεί σύνδεση Internet.</string>
|
||||
<string name="help_set_keybox_description">Αντικατέστησε το tricky store keybox.xml. Η επιλογή valid keybox απαιτεί σύνδεση Internet.</string>
|
||||
<string name="help_set_custom_keybox">Όρισε Custom Keybox</string>
|
||||
<string name="help_set_custom_keybox_description">Εισήγαγε keybox από τη συσκευή σου. Υποστηρίζεται μόνο αρχείο xml.</string>
|
||||
<string name="help_set_security_patch">Όρισε Security Patch</string>
|
||||
@@ -52,7 +52,6 @@
|
||||
<string name="menu_set_verified_boot_hash">Όρισε Verified Boot Hash</string>
|
||||
<string name="menu_set_security_patch">Όρισε Security Patch</string>
|
||||
<string name="menu_about">Σχετικά</string>
|
||||
<string name="menu_shortcut">Δημιουργία συντόμευσης στην αρχική οθόνη</string>
|
||||
<!-- Boot Hash -->
|
||||
<string name="boot_hash_title">Boot Hash</string>
|
||||
<string name="boot_hash_input_placeholder">Επικόλλησε εδώ το Verified Boot Hash σου</string>
|
||||
@@ -91,7 +90,6 @@
|
||||
<string name="prompt_no_file_selected">Δεν επιλέχθηκε αρχείο</string>
|
||||
<string name="prompt_system_app_not_found">Η εφαρμογή συστήματος δεν βρέθηκε</string>
|
||||
<string name="prompt_system_app_error">Αποτυχία προσθήκης εφαρμογής συστήματος</string>
|
||||
<string name="prompt_shortcut_created">Η συντόμευση στην αρχική οθόνη δημιουργήθηκε</string>
|
||||
<!-- Security Patch -->
|
||||
<string name="security_patch_title">Security Patch</string>
|
||||
<string name="security_patch_advanced_mode">Προχωρημένο</string>
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
<string name="help_add_system_app">Add System App</string>
|
||||
<string name="help_add_system_app_description">Add specific system app to app list.</string>
|
||||
<string name="help_set_keybox">Set AOSP & Valid Keybox</string>
|
||||
<string name="help_set_keybox_description">Replace tricky store keybox.xml. AOSP keybox will be replaced if there\'s no more valid keybox. Valid keybox option requires Internet connection.</string>
|
||||
<string name="help_set_keybox_description">Replace tricky store keybox.xml. Valid keybox option requires Internet connection and not always available.</string>
|
||||
<string name="help_set_custom_keybox">Set Custom Keybox</string>
|
||||
<string name="help_set_custom_keybox_description">Import keybox from your device storage. Only support xml file.</string>
|
||||
<string name="help_set_security_patch">Set Security Patch</string>
|
||||
@@ -52,8 +52,8 @@
|
||||
<string name="menu_set_custom_keybox">Set Custom Keybox</string>
|
||||
<string name="menu_set_verified_boot_hash">Set Verified Boot Hash</string>
|
||||
<string name="menu_set_security_patch">Set Security Patch</string>
|
||||
<string name="menu_set_devconfig">Set DevConfig</string>
|
||||
<string name="menu_about">About</string>
|
||||
<string name="menu_shortcut">Create home screen shortcut</string>
|
||||
<!-- Boot Hash -->
|
||||
<string name="boot_hash_title">Boot Hash</string>
|
||||
<string name="boot_hash_input_placeholder">Paste your verified Boot Hash here</string>
|
||||
@@ -79,7 +79,7 @@
|
||||
<string name="prompt_save_error">Failed to save config</string>
|
||||
<string name="prompt_uninstall_prompt">WebUI will be removed after reboot</string>
|
||||
<string name="prompt_uninstall_failed">Failed to uninstall WebUI</string>
|
||||
<string name="prompt_checking_update">Checking udpate...</string>
|
||||
<string name="prompt_checking_update">Checking update...</string>
|
||||
<string name="prompt_new_update">A new update is available!</string>
|
||||
<string name="prompt_no_update">There are currently no updates available</string>
|
||||
<string name="prompt_downloading">Downloading new update...</string>
|
||||
@@ -95,7 +95,6 @@
|
||||
<string name="prompt_no_file_selected">No file selected</string>
|
||||
<string name="prompt_system_app_not_found">System app not found</string>
|
||||
<string name="prompt_system_app_error">Failed to add system app</string>
|
||||
<string name="prompt_shortcut_created">Home screen shortcut created</string>
|
||||
<!-- Security Patch -->
|
||||
<string name="security_patch_title">Security Patch</string>
|
||||
<string name="security_patch_advanced_mode">Advanced</string>
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
<string name="help_add_system_app">Agregar Aplicación del Sistema</string>
|
||||
<string name="help_add_system_app_description">Agregar una aplicación del sistema específica a la lista de aplicaciones.</string>
|
||||
<string name="help_set_keybox">Configurar AOSP y Keybox Válido</string>
|
||||
<string name="help_set_keybox_description">Reemplazar el archivo keybox.xml de Tricky Store. El AOSP Keybox será reemplazado si no hay un keybox válido. Esta opción requiere conexión a Internet.</string>
|
||||
<string name="help_set_keybox_description">Reemplazar el archivo keybox.xml de Tricky Store. Esta opción requiere conexión a Internet.</string>
|
||||
<string name="help_set_custom_keybox">Establecer Keybox Personalizado</string>
|
||||
<string name="help_set_custom_keybox_description">Importar keybox desde el almacenamiento de tu dispositivo. Solo soporta archivos xml.</string>
|
||||
<string name="help_set_security_patch">Configurar Parche de Seguridad</string>
|
||||
@@ -52,7 +52,6 @@
|
||||
<string name="menu_set_verified_boot_hash">Configurar Boot Hash Verificado</string>
|
||||
<string name="menu_set_security_patch">Configurar Parche de Seguridad</string>
|
||||
<string name="menu_about">Acerca de</string>
|
||||
<string name="menu_shortcut">Crear acceso directo en la pantalla de inicio</string>
|
||||
<!-- Boot Hash -->
|
||||
<string name="boot_hash_title">Boot Hash</string>
|
||||
<string name="boot_hash_input_placeholder">Pega aquí tu Boot Hash verificado</string>
|
||||
@@ -91,7 +90,6 @@
|
||||
<string name="prompt_no_file_selected">Ningún archivo seleccionado</string>
|
||||
<string name="prompt_system_app_not_found">Aplicación del sistema no encontrada</string>
|
||||
<string name="prompt_system_app_error">Error al agregar la aplicación del sistema</string>
|
||||
<string name="prompt_shortcut_created">Acceso directo creado en la pantalla de inicio</string>
|
||||
<!-- Security Patch -->
|
||||
<string name="security_patch_title">Parche de Seguridad</string>
|
||||
<string name="security_patch_advanced_mode">Avanzado</string>
|
||||
|
||||
120
module/webui/locales/strings/fa.xml
Normal file
120
module/webui/locales/strings/fa.xml
Normal file
@@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="system_default">پیش فرض سیستم</string>
|
||||
<string name="more_language">بیشتر</string>
|
||||
<!-- Header -->
|
||||
<!-- Help Menu-->
|
||||
<string name="help_help_instructions">راهنما</string>
|
||||
<string name="help_save_and_update">ذخیره</string>
|
||||
<string name="help_save_and_update_description">پیکربندی فعلی را در target.txt ذخیره کنید.</string>
|
||||
<string name="help_refresh">تازه سازی</string>
|
||||
<string name="help_refresh_description">لیست برنامهها و لیست حذف را تازه کنید.</string>
|
||||
<string name="help_select_deselect">انتخاب همه و لغو انتخاب</string>
|
||||
<string name="help_select_description">همه برنامهها را در رابط فعلی انتخاب کنید یا لغو انتخاب کنید.</string>
|
||||
<string name="help_select_denylist">انتخاب از DenyList</string>
|
||||
<string name="help_select_denylist_description">فقط در Magisk موجود است، برنامههایی که در DenyList هستند را انتخاب کنید. توصیه شده.</string>
|
||||
<string name="help_deselect_unnecessary">لغو انتخاب غیرضروری</string>
|
||||
<string name="help_deselect_unnecessary_description">دسته غیرضروری: ماژول Xposed، مدیر root، برنامههای مرتبط با root، و برنامههای عمومی که هرگز وضعیت bootloader را بررسی نمیکنند. این گزینه نیاز به اتصال اینترنت دارد.</string>
|
||||
<string name="help_add_system_app">افزودن برنامه سیستمی</string>
|
||||
<string name="help_add_system_app_description">برنامه سیستمی خاص را به لیست برنامهها اضافه کنید.</string>
|
||||
<string name="help_set_keybox">تنظیم AOSP و Valid Keybox</string>
|
||||
<string name="help_set_keybox_description">keybox.xml ذخیره tricky را جایگزین کنید. گزینه Valid keybox نیاز به اتصال اینترنت دارد و همیشه موجود نیست.</string>
|
||||
<string name="help_set_custom_keybox">تنظیم Custom Keybox</string>
|
||||
<string name="help_set_custom_keybox_description">keybox را از ذخیرهسازی دستگاه خود وارد کنید. فقط فایل xml پشتیبانی میشود.</string>
|
||||
<string name="help_set_security_patch">تنظیم Security Patch</string>
|
||||
<string name="help_set_security_patch_description">Custom security patch spoof تنظیم کنید. Auto config از security patch ماژول PIF استفاده خواهد کرد. خالی بگذارید و ذخیره کنید تا auto config غیرفعال شود.</string>
|
||||
<string name="help_set_verified_boot_hash">تنظیم Verified Boot Hash</string>
|
||||
<string name="help_set_verified_boot_hash_description">مقدار verifiedBootHash را از Key Attestation Demo دریافت کنید. وضعیت boot غیرعادی را با بازنشانی ro.boot.vbmeta.digest برطرف کنید.</string>
|
||||
<!-- Update -->
|
||||
<string name="update_update_available">نسخه جدید آماده است</string>
|
||||
<string name="update_redirect_to_release">برای دانلود آخرین نسخه ضربه بزنید</string>
|
||||
<string name="update_changelog">تاریخچه تغییرات</string>
|
||||
<string name="update_install">نصب</string>
|
||||
<string name="update_reboot">راهاندازی مجدد</string>
|
||||
<!-- Search -->
|
||||
<string name="search_bar_search_placeholder">جُستجو</string>
|
||||
<!-- Functional Button -->
|
||||
<string name="functional_button_save_and_update_button">ذخیره</string>
|
||||
<string name="functional_button_uninstall_webui">حذف WebUI</string>
|
||||
<!-- Loading -->
|
||||
<string name="loading_loading">در حال بارگیری...</string>
|
||||
<!-- Menu -->
|
||||
<string name="menu_refresh">رفرش</string>
|
||||
<string name="menu_select_all">انتخاب همه</string>
|
||||
<string name="menu_deselect_all">لغو انتخاب همه</string>
|
||||
<string name="menu_select_denylist">انتخاب از DenyList</string>
|
||||
<string name="menu_deselect_unnecessary">لغو انتخاب غیرضروری</string>
|
||||
<string name="menu_add_system_app">افزودن برنامه سیستمی</string>
|
||||
<string name="menu_set_aosp_keybox">تنظیم AOSP Keybox</string>
|
||||
<string name="menu_set_unknown_keybox">تنظیم Unknown Keybox</string>
|
||||
<string name="menu_set_valid_keybox">تنظیم Valid Keybox</string>
|
||||
<string name="menu_set_custom_keybox">تنظیم Custom Keybox</string>
|
||||
<string name="menu_set_verified_boot_hash">تنظیم Verified Boot Hash</string>
|
||||
<string name="menu_set_security_patch">تنظیم Security Patch</string>
|
||||
<string name="menu_about">درباره</string>
|
||||
<!-- Boot Hash -->
|
||||
<string name="boot_hash_input_placeholder">Verified Boot Hash خود را اینجا بچسبانید</string>
|
||||
<string name="boot_hash_save_button">ذخیره</string>
|
||||
<!-- About -->
|
||||
<string name="about_by">از</string>
|
||||
<string name="about_telegram_channel">کانال تلگرام</string>
|
||||
<string name="about_canary_update">بهروزرسانی به آخرین نسخه canary</string>
|
||||
<string name="about_disclaimer">این ماژول بخشی از ماژول Tricky Store نیست. در صورت بروز مشکل، به Tricky Store گزارش ندهید.</string>
|
||||
<string name="about_acknowledgment">تقدیر و تشکر</string>
|
||||
<!-- Prompt -->
|
||||
<string name="prompt_no_internet">اتصال به اینترنت خود را بررسی کنید</string>
|
||||
<string name="prompt_aosp_key_set">AOSP keybox با موفقیت تنظیم شد</string>
|
||||
<string name="prompt_key_set_error">بهروزرسانی keybox ناموفق بود</string>
|
||||
<string name="prompt_unknown_key_set">Unknown keybox با موفقیت تنظیم شد</string>
|
||||
<string name="prompt_valid_key_set">Valid keybox با موفقیت تنظیم شد</string>
|
||||
<string name="prompt_no_valid">هیچ valid keybox یافت نشد.</string>
|
||||
<string name="prompt_boot_hash_set">Verified Boot Hash با موفقیت ذخیره شد</string>
|
||||
<string name="prompt_boot_hash_set_error">بهروزرسانی Verified Boot Hash ناموفق بود</string>
|
||||
<string name="prompt_saved_target">پیکربندی در target.txt ذخیره شد</string>
|
||||
<string name="prompt_save_error">ذخیره پیکربندی ناموفق بود</string>
|
||||
<string name="prompt_uninstall_prompt">WebUI پس از راهاندازی مجدد حذف خواهد شد</string>
|
||||
<string name="prompt_uninstall_failed">حذف WebUI ناموفق بود</string>
|
||||
<string name="prompt_checking_update">بررسی به روز رسانی...</string>
|
||||
<string name="prompt_new_update">یک بروزرسانی جدید دردسترس میباشد!</string>
|
||||
<string name="prompt_no_update">در حال حاضر هیچ بهروزرسانی موجود نیست</string>
|
||||
<string name="prompt_downloading">دانلود بهروزرسانی جدید...</string>
|
||||
<string name="prompt_downloaded">بارگیری کامل شد</string>
|
||||
<string name="prompt_download_fail">به روزرسانی بارگیری نشد</string>
|
||||
<string name="prompt_installing">در حال نصب بهروزرسانی...</string>
|
||||
<string name="prompt_installed">با موفقیت نصب شد، اکنون راهاندازی مجدد کنید.</string>
|
||||
<string name="prompt_install_fail">نصب ناموفق بود، لطفاً به صورت دستی بهروزرسانی کنید</string>
|
||||
<string name="prompt_rebooting">در حال راه اندازی مجدد…</string>
|
||||
<string name="prompt_reboot_fail">راهاندازی مجدد ناموفق بود، لطفاً به صورت دستی راهاندازی مجدد کنید</string>
|
||||
<string name="prompt_custom_key_set">Custom keybox با موفقیت تنظیم شد</string>
|
||||
<string name="prompt_custom_key_set_error">تنظیم Custom keybox ناموفق بود</string>
|
||||
<string name="prompt_no_file_selected">هیچ پروندهای گزیده نشده</string>
|
||||
<string name="prompt_system_app_not_found">برنامه سیستمی یافت نشد</string>
|
||||
<string name="prompt_system_app_error">افزودن برنامه سیستمی ناموفق بود</string>
|
||||
<!-- Security Patch -->
|
||||
<string name="security_patch_advanced_mode">پیشرفته</string>
|
||||
<string name="security_patch_get_date">دریافت تاریخ Security Patch</string>
|
||||
<string name="security_patch_auto">خودکار</string>
|
||||
<string name="security_patch_save">ذخیره</string>
|
||||
<string name="security_patch_fetching">در حال دریافت...</string>
|
||||
<string name="security_patch_fetched">انجام شده</string>
|
||||
<string name="security_patch_get_failed">دریافت تاریخ security patch ناموفق بود</string>
|
||||
<string name="security_patch_unable_to_connect">عدم امکان اتصال به source.android.com</string>
|
||||
<string name="security_patch_auto_success">Auto config با موفقیت فعال شد</string>
|
||||
<string name="security_patch_auto_failed">فعالسازی Auto config ناموفق بود</string>
|
||||
<string name="security_patch_save_success">Security patch با موفقیت ذخیره شد</string>
|
||||
<string name="security_patch_save_failed">ذخیره Security patch ناموفق بود</string>
|
||||
<string name="security_patch_value_empty">پیکربندی Security patch غیرفعال است</string>
|
||||
<string name="security_patch_invalid_all">قالب نامعتبر</string>
|
||||
<string name="security_patch_invalid_boot">قالب boot نامعتبر</string>
|
||||
<string name="security_patch_invalid_system">قالب system نامعتبر</string>
|
||||
<string name="security_patch_invalid_vendor">قالب vendor نامعتبر</string>
|
||||
<!-- Add System App -->
|
||||
<string name="add_system_app_title">افزودن برنامه سیستمی</string>
|
||||
<string name="add_system_app_add">افزودن</string>
|
||||
<string name="add_system_app_current_list">لیست فعلی برنامههای سیستمی</string>
|
||||
<!-- Uninstall confirmation -->
|
||||
<string name="confirmation_uninstall_title">تأیید حذف؟</string>
|
||||
<string name="confirmation_uninstall_message">آیا مطمئن هستید که میخواهید Tricky Addon را حذف کنید</string>
|
||||
<string name="confirmation_uninstall_cancel">لغو</string>
|
||||
<string name="confirmation_uninstall_confirm">تایید</string>
|
||||
</resources>
|
||||
@@ -19,7 +19,7 @@
|
||||
<string name="help_add_system_app">Ajouter une application système</string>
|
||||
<string name="help_add_system_app_description">Ajouter une application système spécifique à la liste.</string>
|
||||
<string name="help_set_keybox">Définir une Keybox AOSP & Valide</string>
|
||||
<string name="help_set_keybox_description">Remplacer le fichier keybox.xml de Tricky Store. La keybox AOSP sera remplacée s'il n'y a plus de keybox valide. L'option keybox valide nécessite une connexion Internet.</string>
|
||||
<string name="help_set_keybox_description">Remplacer le fichier keybox.xml de Tricky Store. L'option keybox valide nécessite une connexion Internet.</string>
|
||||
<string name="help_set_custom_keybox">Définir une Keybox personnalisée</string>
|
||||
<string name="help_set_custom_keybox_description">Importer une keybox depuis le stockage de votre appareil. Seuls les fichiers XML sont pris en charge.</string>
|
||||
<string name="help_set_security_patch">Définir le patch de sécurité</string>
|
||||
@@ -53,7 +53,6 @@
|
||||
<string name="menu_set_verified_boot_hash">Définir le hash Verified Boot</string>
|
||||
<string name="menu_set_security_patch">Définir le patch de sécurité</string>
|
||||
<string name="menu_about">À propos</string>
|
||||
<string name="menu_shortcut">Créer un raccourci sur l'écran d'accueil</string>
|
||||
<!-- Boot Hash -->
|
||||
<string name="boot_hash_title">Hash de démarrage</string>
|
||||
<string name="boot_hash_input_placeholder">Collez votre hash Verified Boot ici</string>
|
||||
@@ -95,7 +94,6 @@
|
||||
<string name="prompt_no_file_selected">Aucun fichier sélectionné</string>
|
||||
<string name="prompt_system_app_not_found">Application système introuvable</string>
|
||||
<string name="prompt_system_app_error">Échec de l'ajout de l'application système</string>
|
||||
<string name="prompt_shortcut_created">Raccourci créé sur l'écran d'accueil</string>
|
||||
<!-- Security Patch -->
|
||||
<string name="security_patch_title">Patch de sécurité</string>
|
||||
<string name="security_patch_advanced_mode">Avancé</string>
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
<string name="help_add_system_app">Tambahkan Aplikasi Sistem</string>
|
||||
<string name="help_add_system_app_description">Tambahkan aplikasi sistem tertentu ke daftar aplikasi.</string>
|
||||
<string name="help_set_keybox">Ganti Keybox AOSP & Valid</string>
|
||||
<string name="help_set_keybox_description">Ganti file keybox.xml bawaan. Jika tidak ada keybox valid, maka keybox AOSP akan digunakan. Opsi ini memerlukan koneksi internet.</string>
|
||||
<string name="help_set_keybox_description">Ganti file keybox.xml bawaan. Opsi ini memerlukan koneksi internet.</string>
|
||||
<string name="help_set_custom_keybox">Gunakan Keybox Kustom</string>
|
||||
<string name="help_set_custom_keybox_description">Impor keybox dari penyimpanan perangkat. Hanya mendukung file XML.</string>
|
||||
<string name="help_set_security_patch">Atur Patch Keamanan</string>
|
||||
@@ -52,7 +52,6 @@
|
||||
<string name="menu_set_verified_boot_hash">Atur Verified Boot Hash</string>
|
||||
<string name="menu_set_security_patch">Atur Patch Keamanan</string>
|
||||
<string name="menu_about">Tentang</string>
|
||||
<string name="menu_shortcut">Buat pintasan di layar utama</string>
|
||||
<!-- Boot Hash -->
|
||||
<string name="boot_hash_title">Verified Boot Hash</string>
|
||||
<string name="boot_hash_input_placeholder">Tempel Verified Boot Hash Anda di sini</string>
|
||||
@@ -91,7 +90,6 @@
|
||||
<string name="prompt_no_file_selected">Tidak ada file yang dipilih</string>
|
||||
<string name="prompt_system_app_not_found">Aplikasi sistem tidak ditemukan</string>
|
||||
<string name="prompt_system_app_error">Gagal menambahkan aplikasi sistem</string>
|
||||
<string name="prompt_shortcut_created">Pintasan layar utama telah dibuat</string>
|
||||
<!-- Security Patch -->
|
||||
<string name="security_patch_title">Patch Keamanan</string>
|
||||
<string name="security_patch_advanced_mode">Mode Lanjutan</string>
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="system_default">Predefinito di sistema</string>
|
||||
<string name="more_language">Altro</string>
|
||||
<!-- Header -->
|
||||
<string name="header_title">Tricky Addon</string>
|
||||
<!-- Help Menu-->
|
||||
@@ -18,7 +19,7 @@
|
||||
<string name="help_add_system_app">Aggiungi App di Sistema</string>
|
||||
<string name="help_add_system_app_description">Aggiungi app di sistema specifiche all'elenco delle app.</string>
|
||||
<string name="help_set_keybox">Imposta AOSP & Keybox Valida</string>
|
||||
<string name="help_set_keybox_description">Sostituisci tricky store keybox.xml. La keybox AOSP verrà sostituita se non ci sono più keybox valide. L'opzione valida per la keybox richiede una connessione Internet.</string>
|
||||
<string name="help_set_keybox_description">Sostituisci tricky store keybox.xml. L'opzione valida per la keybox richiede una connessione Internet.</string>
|
||||
<string name="help_set_custom_keybox">Imposta Keybox Personalizzata</string>
|
||||
<string name="help_set_custom_keybox_description">Importa keybox dalla memoria del tuo dispositivo. Supporta solo file xml.</string>
|
||||
<string name="help_set_security_patch">Imposta Patch di Sicurezza</string>
|
||||
@@ -28,7 +29,7 @@
|
||||
<!-- Update -->
|
||||
<string name="update_update_available">È pronta una nuova versione</string>
|
||||
<string name="update_redirect_to_release">tocca per scaricare l'ultima versione</string>
|
||||
<string name="update_changelog">Changelog</string>
|
||||
<string name="update_changelog">Registro delle modifiche</string>
|
||||
<string name="update_install">Installa</string>
|
||||
<string name="update_reboot">Riavvio</string>
|
||||
<!-- Search -->
|
||||
@@ -51,8 +52,7 @@
|
||||
<string name="menu_set_custom_keybox">Imposta Keybox Personalizzata</string>
|
||||
<string name="menu_set_verified_boot_hash">Imposta Boot Hash Verificato</string>
|
||||
<string name="menu_set_security_patch">Imposta Patch di Sicurezza</string>
|
||||
<string name="menu_about">About</string>
|
||||
<string name="menu_shortcut">Crea collegamento nella schermata iniziale</string>
|
||||
<string name="menu_about">Informazioni</string>
|
||||
<!-- Boot Hash -->
|
||||
<string name="boot_hash_title">Boot Hash</string>
|
||||
<string name="boot_hash_input_placeholder">Incolla qui il tuo Boot Hash verificato</string>
|
||||
@@ -62,6 +62,7 @@
|
||||
<string name="about_module_name_line2">Aggiorna Target List</string>
|
||||
<string name="about_by">by</string>
|
||||
<string name="about_telegram_channel">Canale Telegram</string>
|
||||
<string name="about_canary_update">Aggiornato all'ultima versione canary</string>
|
||||
<string name="about_disclaimer">Questo modulo non fa parte del modulo Tricky Store. NON segnalare eventuali problemi a Tricky Store se riscontrati.</string>
|
||||
<string name="about_acknowledgment">Riconoscimento</string>
|
||||
<!-- Prompt -->
|
||||
@@ -77,7 +78,9 @@
|
||||
<string name="prompt_save_error">Impossibile salvare la configurazione</string>
|
||||
<string name="prompt_uninstall_prompt">WebUI verrà rimosso dopo il riavvio</string>
|
||||
<string name="prompt_uninstall_failed">Impossibile disinstallare WebUI</string>
|
||||
<string name="prompt_checking_update">Controllo aggiornamento...</string>
|
||||
<string name="prompt_new_update">È disponibile un nuovo aggiornamento!</string>
|
||||
<string name="prompt_no_update">Al momento non ci sono aggiornamenti disponibili</string>
|
||||
<string name="prompt_downloading">Download nuovo aggiornamento...</string>
|
||||
<string name="prompt_downloaded">Download completato</string>
|
||||
<string name="prompt_download_fail">Impossibile scaricare l'aggiornamento</string>
|
||||
@@ -91,7 +94,6 @@
|
||||
<string name="prompt_no_file_selected">Nessun file selezionato</string>
|
||||
<string name="prompt_system_app_not_found">App di sistema non trovata</string>
|
||||
<string name="prompt_system_app_error">Impossibile aggiungere l'app di sistema</string>
|
||||
<string name="prompt_shortcut_created">Collegamento creato nella schermata iniziale</string>
|
||||
<!-- Security Patch -->
|
||||
<string name="security_patch_title">Patch di sicurezza</string>
|
||||
<string name="security_patch_advanced_mode">Avanzato</string>
|
||||
@@ -101,6 +103,7 @@
|
||||
<string name="security_patch_fetching">Recupero...</string>
|
||||
<string name="security_patch_fetched">Fatto</string>
|
||||
<string name="security_patch_get_failed">Impossibile recuperare la data della patch di sicurezza</string>
|
||||
<string name="security_patch_unable_to_connect">Impossibile connettersi a source.android.com</string>
|
||||
<string name="security_patch_auto_success">Configurazione automatica abilitata correttamente</string>
|
||||
<string name="security_patch_auto_failed">Impossibile abilitare la configurazione automatica</string>
|
||||
<string name="security_patch_save_success">Patch di sicurezza salvata correttamente</string>
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="system_default">システムのデフォルト</string>
|
||||
<string name="more_language">詳細</string>
|
||||
<!-- Header -->
|
||||
<string name="header_title">Tricky Addon</string>
|
||||
<!-- Help Menu-->
|
||||
@@ -18,7 +19,7 @@
|
||||
<string name="help_add_system_app">システムアプリを追加</string>
|
||||
<string name="help_add_system_app_description">特定のシステムアプリをアプリリストに追加します。</string>
|
||||
<string name="help_set_keybox">AOSP と有効な Keybox</string>
|
||||
<string name="help_set_keybox_description">Tricky Store の keybox.xml を置き換えます。有効な Keybox がなくなった場合は、AOSP Keybox に置き換えられます。インターネット接続が必要です。</string>
|
||||
<string name="help_set_keybox_description">Tricky Store の keybox.xml を置き換えます。インターネット接続が必要です。</string>
|
||||
<string name="help_set_custom_keybox">カスタム Keybox を設定</string>
|
||||
<string name="help_set_custom_keybox_description">デバイスのストレージからカスタム Keybox ファイルをインポートします。インポートは xml ファイルのみ対応しています。</string>
|
||||
<string name="help_set_security_patch">セキュリティパッチを設定</string>
|
||||
@@ -52,7 +53,6 @@
|
||||
<string name="menu_set_verified_boot_hash">確認付きブートハッシュを設定</string>
|
||||
<string name="menu_set_security_patch">セキュリティパッチを設定</string>
|
||||
<string name="menu_about">このアドオンについて</string>
|
||||
<string name="menu_shortcut">ホーム画面にショートカットを作成</string>
|
||||
<!-- Boot Hash -->
|
||||
<string name="boot_hash_title">ブートハッシュ</string>
|
||||
<string name="boot_hash_input_placeholder">確認付きブートハッシュをここに貼り付け</string>
|
||||
@@ -62,6 +62,7 @@
|
||||
<string name="about_module_name_line2">ターゲットリストを更新</string>
|
||||
<string name="about_by">開発者: </string>
|
||||
<string name="about_telegram_channel">Telegram チャンネル</string>
|
||||
<string name="about_canary_update">最新の Canary バージョンに更新</string>
|
||||
<string name="about_disclaimer">このモジュールは、Tricky Store モジュールの一部ではありません。Tricky Store 公式に問題を報告しないでください。</string>
|
||||
<string name="about_acknowledgment">謝辞</string>
|
||||
<!-- Prompt -->
|
||||
@@ -75,9 +76,11 @@
|
||||
<string name="prompt_boot_hash_set_error">確認付きブートハッシュの更新に失敗しました。</string>
|
||||
<string name="prompt_saved_target">設定を target.txt に保存しました。</string>
|
||||
<string name="prompt_save_error">設定の保存に失敗しました。</string>
|
||||
<string name="prompt_uninstall_prompt">WebUI は再起動後に削除されます。</string>
|
||||
<string name="prompt_uninstall_prompt">WebUI を再起動後に削除されます。</string>
|
||||
<string name="prompt_uninstall_failed">WebUI のアンインストールに失敗しました。</string>
|
||||
<string name="prompt_checking_update">更新を確認しています...</string>
|
||||
<string name="prompt_new_update">新しいバージョンがあります!</string>
|
||||
<string name="prompt_no_update">利用可能な更新はありません。</string>
|
||||
<string name="prompt_downloading">新しい更新をダウンロード中...</string>
|
||||
<string name="prompt_downloaded">ダウンロードが完了しました</string>
|
||||
<string name="prompt_download_fail">更新のダウンロードに失敗しました</string>
|
||||
@@ -91,7 +94,6 @@
|
||||
<string name="prompt_no_file_selected">ファイルが選択されていません</string>
|
||||
<string name="prompt_system_app_not_found">システムアプリが見つかりません</string>
|
||||
<string name="prompt_system_app_error">システムアプリの追加に失敗しました</string>
|
||||
<string name="prompt_shortcut_created">ホーム画面にショートカットが作成されました</string>
|
||||
<!-- Security Patch -->
|
||||
<string name="security_patch_title">セキュリティパッチ</string>
|
||||
<string name="security_patch_advanced_mode">高度</string>
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
<string name="help_add_system_app">Dodaj aplikację systemową</string>
|
||||
<string name="help_add_system_app_description">Dodaj konkretną aplikację systemową do listy aplikacji.</string>
|
||||
<string name="help_set_keybox">Ustaw działający klucz AOSP</string>
|
||||
<string name="help_set_keybox_description">Zastąp klucz keybox.xml. Klucz AOSP zostanie zastosowany, jeśli nie będzie więcej działających kluczy. Funkcja wymaga połączenia internetowego.</string>
|
||||
<string name="help_set_keybox_description">Zastąp klucz keybox.xml. Funkcja wymaga połączenia internetowego.</string>
|
||||
<string name="help_set_custom_keybox">Ustaw niestandardowy klucz</string>
|
||||
<string name="help_set_custom_keybox_description">Importuj klucz z pamięci urządzenia. Obsługuje tylko pliki xml.</string>
|
||||
<string name="help_set_security_patch">Ustaw poprawkę zabezpieczeń</string>
|
||||
@@ -53,7 +53,6 @@
|
||||
<string name="menu_set_verified_boot_hash">Ustaw zweryfikowany skrót rozruchowy</string>
|
||||
<string name="menu_set_security_patch">Ustaw poprawkę zabezpieczeń</string>
|
||||
<string name="menu_about">O Tricky Addon</string>
|
||||
<string name="menu_shortcut">Utwórz skrót do ekranu głównego</string>
|
||||
<!-- Boot Hash -->
|
||||
<string name="boot_hash_title">Skrót rozruchowy</string>
|
||||
<string name="boot_hash_input_placeholder">Wklej tutaj zweryfikowany skrót rozruchowy</string>
|
||||
@@ -95,7 +94,6 @@
|
||||
<string name="prompt_no_file_selected">Nie wybrano pliku</string>
|
||||
<string name="prompt_system_app_not_found">Nie znaleziono aplikacji systemowej</string>
|
||||
<string name="prompt_system_app_error">Nie udało się dodać aplikacji systemowej</string>
|
||||
<string name="prompt_shortcut_created">Utworzono skrót do ekranu głównego</string>
|
||||
<!-- Security Patch -->
|
||||
<string name="security_patch_title">Poprawka zabezpieczeń</string>
|
||||
<string name="security_patch_advanced_mode">Zaawansowane</string>
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
<string name="help_add_system_app">Adicionar app do sistema</string>
|
||||
<string name="help_add_system_app_description">Adicionar app do sistema específico à lista de aplicativos.</string>
|
||||
<string name="help_set_keybox">Definir AOSP & Keybox Válida</string>
|
||||
<string name="help_set_keybox_description">Substitua keybox.xml de tricky store. AOSP keybox será substituído se não houver mais a keybox válida. A opção Keybox válida requer conexão à Internet.</string>
|
||||
<string name="help_set_keybox_description">Substitua keybox.xml de tricky store. A opção Keybox válida requer conexão à Internet.</string>
|
||||
<string name="help_set_custom_keybox">Definir uma Keybox personalizada</string>
|
||||
<string name="help_set_custom_keybox_description">Importar Keybox do armazenamento do seu dispositivo. Suporta apenas o arquivo XML.</string>
|
||||
<string name="help_set_security_patch">Definir patch de segurança</string>
|
||||
@@ -53,7 +53,6 @@
|
||||
<string name="menu_set_verified_boot_hash">Definir Hash de Boot Verificado</string>
|
||||
<string name="menu_set_security_patch">Definir Patch de segurança</string>
|
||||
<string name="menu_about">Sobre</string>
|
||||
<string name="menu_shortcut">Criar atalho na tela inicial</string>
|
||||
<!-- Boot Hash -->
|
||||
<string name="boot_hash_title">Boot Hash</string>
|
||||
<string name="boot_hash_input_placeholder">Cole o seu Boot Hash verificado aqui</string>
|
||||
@@ -95,7 +94,6 @@
|
||||
<string name="prompt_no_file_selected">Nenhum arquivo selecionado</string>
|
||||
<string name="prompt_system_app_not_found">App do sistema não encontrado</string>
|
||||
<string name="prompt_system_app_error">Falha ao adicionar app do sistema</string>
|
||||
<string name="prompt_shortcut_created">Atalho na tela inicial criado com sucesso</string>
|
||||
<!-- Security Patch -->
|
||||
<string name="security_patch_title">Patch de segurança</string>
|
||||
<string name="security_patch_advanced_mode">Avançado</string>
|
||||
|
||||
@@ -17,13 +17,13 @@
|
||||
<string name="help_deselect_unnecessary_description">Ненужные категории: модули Xposed, менеджеры root, приложения, связанные с root, и общие приложения, которые никогда не проверяют статус загрузчика. Этот параметр требует подключения к интернету.</string>
|
||||
<string name="help_add_system_app">Добавить системное приложение</string>
|
||||
<string name="help_add_system_app_description">Добавить конкретное системное приложение в список приложений.</string>
|
||||
<string name="help_set_keybox">Установить AOSP и действующий Keybox</string>
|
||||
<string name="help_set_keybox_description">Замените tricky store keybox.xml. AOSP keybox будет заменен, если не будет найден действующий keybox. Опция с действующим keybox требует подключения к интернету.</string>
|
||||
<string name="help_set_custom_keybox">Установить пользовательский Keybox</string>
|
||||
<string name="help_set_custom_keybox_description">Импортируйте файл keybox из вашего устройства в хранилище. Поддерживаются только xml файлы.</string>
|
||||
<string name="help_set_security_patch">Установить Security Patch</string>
|
||||
<string name="help_set_keybox">Установить AOSP & и действующий keybox</string>
|
||||
<string name="help_set_keybox_description">Замените tricky store keybox.xml. Опция с действующим keybox требует подключения к интернету.</string>
|
||||
<string name="help_set_custom_keybox">Установить свой keybox</string>
|
||||
<string name="help_set_custom_keybox_description">Импортируйте файл keybox из памяти своего устройства. Поддерживаются только файлы XML.</string>
|
||||
<string name="help_set_security_patch">Установить патч безопасности</string>
|
||||
<string name="help_set_security_patch_description">Установите пользовательский патч безопасности. Автоматическая настройка будет использовать патч безопасности из модуля PIF. Оставьте пустым и сохраните, чтобы отключить автоматическую настройку.</string>
|
||||
<string name="help_set_verified_boot_hash">Установить Verified Boot Hash</string>
|
||||
<string name="help_set_verified_boot_hash">Установить verified boot hash</string>
|
||||
<string name="help_set_verified_boot_hash_description">Получите значение verifiedBootHash из Key Attestation Demo. Исправьте аномальное состояние загрузки, сбросив ro.boot.vbmeta.digest.</string>
|
||||
<!-- Update -->
|
||||
<string name="update_update_available">Доступна новая версия</string>
|
||||
@@ -45,14 +45,13 @@
|
||||
<string name="menu_select_denylist">Выбрать из DenyList</string>
|
||||
<string name="menu_deselect_unnecessary">Отменить выбор ненужных</string>
|
||||
<string name="menu_add_system_app">Добавить системное приложение</string>
|
||||
<string name="menu_set_aosp_keybox">Установить AOSP Keybox</string>
|
||||
<string name="menu_set_unknown_keybox">Установить неизвестный Keybox</string>
|
||||
<string name="menu_set_aosp_keybox">Установить keybox AOSP</string>
|
||||
<string name="menu_set_unknown_keybox">Установить неизвестный keybox</string>
|
||||
<string name="menu_set_valid_keybox">Установить действующий Keybox</string>
|
||||
<string name="menu_set_custom_keybox">Установить пользовательский Keybox</string>
|
||||
<string name="menu_set_verified_boot_hash">Установить Verified Boot Hash</string>
|
||||
<string name="menu_set_security_patch">Установить Security Patch</string>
|
||||
<string name="menu_set_custom_keybox">Установить свой keybox</string>
|
||||
<string name="menu_set_verified_boot_hash">Установить verified boot hash</string>
|
||||
<string name="menu_set_security_patch">Установить security patch</string>
|
||||
<string name="menu_about">О программе</string>
|
||||
<string name="menu_shortcut">Создать ярлык на главном экране</string>
|
||||
<!-- Boot Hash -->
|
||||
<string name="boot_hash_title">Boot Hash</string>
|
||||
<string name="boot_hash_input_placeholder">Вставьте свой проверенный Boot Hash сюда</string>
|
||||
@@ -91,7 +90,6 @@
|
||||
<string name="prompt_no_file_selected">Файл не выбран</string>
|
||||
<string name="prompt_system_app_not_found">Системное приложение не найдено</string>
|
||||
<string name="prompt_system_app_error">Не удалось добавить системное приложение</string>
|
||||
<string name="prompt_shortcut_created">Ярлык на главном экране создан</string>
|
||||
<!-- Security Patch -->
|
||||
<string name="security_patch_title">Патч безопасности</string>
|
||||
<string name="security_patch_advanced_mode">Расширенный</string>
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
<string name="help_add_system_app">Magdagdag ng System App</string>
|
||||
<string name="help_add_system_app_description">Magdagdag ng tiyak na system app sa listahan ng apps.</string>
|
||||
<string name="help_set_keybox">I-set ang AOSP at Valid Keybox</string>
|
||||
<string name="help_set_keybox_description">Palitan ang tricky store keybox. Palitan ang AOSP keybox kung walang valid keybox. Nangangailangan ng koneksyon sa internet ang valid keybox option.</string>
|
||||
<string name="help_set_keybox_description">Palitan ang tricky store keybox. Nangangailangan ng koneksyon sa internet ang valid keybox option.</string>
|
||||
<string name="help_set_custom_keybox">I-set ang Custom Keybox</string>
|
||||
<string name="help_set_custom_keybox_description">Mag-import ng custom keybox mula sa iyong device storage. Sumusuporta lamang ng xml file.</string>
|
||||
<string name="help_set_security_patch">I-set ang Security Patch</string>
|
||||
@@ -52,7 +52,6 @@
|
||||
<string name="menu_set_verified_boot_hash">I-set ang Verified Boot Hash</string>
|
||||
<string name="menu_set_security_patch">I-set ang Security Patch</string>
|
||||
<string name="menu_about">Tungkol</string>
|
||||
<string name="menu_shortcut">Gumawa ng shortcut sa home screen</string>
|
||||
<!-- Boot Hash -->
|
||||
<string name="boot_hash_title">Boot Hash</string>
|
||||
<string name="boot_hash_input_placeholder">I-paste ang iyong verified Boot Hash dito</string>
|
||||
@@ -91,7 +90,6 @@
|
||||
<string name="prompt_no_file_selected">Walang napiling file</string>
|
||||
<string name="prompt_system_app_not_found">Walang natagpuan na system app</string>
|
||||
<string name="prompt_system_app_error">Nabigong dagdag ang system app</string>
|
||||
<string name="prompt_shortcut_created">Matagumpay na nagawa ang shortcut sa home screen</string>
|
||||
<!-- Security Patch -->
|
||||
<string name="security_patch_title">Security Patch</string>
|
||||
<string name="security_patch_advanced_mode">Advanced</string>
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="system_default">Sistem Varsayılanı</string>
|
||||
<string name="more_language">Daha Fazla</string>
|
||||
<!-- Header -->
|
||||
<string name="header_title">Tricky Addon</string>
|
||||
<!-- Help Menu-->
|
||||
@@ -18,7 +19,7 @@
|
||||
<string name="help_add_system_app">Sistem Uygulaması Ekle</string>
|
||||
<string name="help_add_system_app_description">Belirli bir sistem uygulamasını uygulama listesine ekleyin.</string>
|
||||
<string name="help_set_keybox">AOSP & Geçerli Keybox Ayarla</string>
|
||||
<string name="help_set_keybox_description">Tricky Store'daki keybox.xml dosyasını değiştirir. Eğer geçerli bir keybox yoksa AOSP keybox ile değiştirilecektir. Geçerli keybox seçeneği internet bağlantısı gerektirir.</string>
|
||||
<string name="help_set_keybox_description">Tricky Store'daki keybox.xml dosyasını değiştirir. Geçerli keybox seçeneği internet bağlantısı gerektirir.</string>
|
||||
<string name="help_set_custom_keybox">Özel Keybox Ayarla</string>
|
||||
<string name="help_set_custom_keybox_description">Cihaz depolamasından bir keybox dosyasını içe aktarın. Sadece xml dosyaları desteklenir.</string>
|
||||
<string name="help_set_security_patch">Güvenlik Yaması Ayarla</string>
|
||||
@@ -52,7 +53,6 @@
|
||||
<string name="menu_set_verified_boot_hash">Doğrulanmış Boot Hash Ayarla</string>
|
||||
<string name="menu_set_security_patch">Güvenlik Yaması Ayarla</string>
|
||||
<string name="menu_about">Hakkında</string>
|
||||
<string name="menu_shortcut">Ana ekrana kısayol oluştur</string>
|
||||
<!-- Boot Hash -->
|
||||
<string name="boot_hash_title">Boot Hash</string>
|
||||
<string name="boot_hash_input_placeholder">Doğrulanmış Boot Hash'inizi buraya yapıştırın</string>
|
||||
@@ -62,6 +62,7 @@
|
||||
<string name="about_module_name_line2">Target List'i Güncelle</string>
|
||||
<string name="about_by">tarafından</string>
|
||||
<string name="about_telegram_channel">Telegram Kanalı</string>
|
||||
<string name="about_canary_update">En son canary sürümüne güncelleyin</string>
|
||||
<string name="about_disclaimer">Bu modül, Tricky Store modülünün bir parçası değildir. Herhangi bir sorun yaşarsanız, lütfen bunu Tricky Store'a rapor etmeyin.</string>
|
||||
<string name="about_acknowledgment">Teşekkürler</string>
|
||||
<!-- Prompt -->
|
||||
@@ -77,7 +78,9 @@
|
||||
<string name="prompt_save_error">Yapılandırma kaydedilemedi</string>
|
||||
<string name="prompt_uninstall_prompt">WebUI yeniden başlatma sonrasında kaldırılacak</string>
|
||||
<string name="prompt_uninstall_failed">WebUI kaldırılamadı</string>
|
||||
<string name="prompt_checking_update">Güncelleme kontrol ediliyor...</string>
|
||||
<string name="prompt_new_update">Yeni bir güncelleme mevcut!</string>
|
||||
<string name="prompt_no_update">Şu anda hiçbir güncelleme mevcut değil</string>
|
||||
<string name="prompt_downloading">Yeni güncelleme indiriliyor...</string>
|
||||
<string name="prompt_downloaded">İndirme tamamlandı</string>
|
||||
<string name="prompt_download_fail">Güncelleme indirilemedi</string>
|
||||
@@ -91,7 +94,6 @@
|
||||
<string name="prompt_no_file_selected">Dosya seçilmedi</string>
|
||||
<string name="prompt_system_app_not_found">Sistem uygulaması bulunamadı</string>
|
||||
<string name="prompt_system_app_error">Sistem uygulaması ekleme hatası</string>
|
||||
<string name="prompt_shortcut_created">Ana ekran kısayolu oluşturuldu</string>
|
||||
<!-- Security Patch -->
|
||||
<string name="security_patch_title">Güvenlik Yaması</string>
|
||||
<string name="security_patch_advanced_mode">Gelişmiş</string>
|
||||
@@ -101,6 +103,7 @@
|
||||
<string name="security_patch_fetching">Alınıyor...</string>
|
||||
<string name="security_patch_fetched">Tamamlandı</string>
|
||||
<string name="security_patch_get_failed">Güvenlik yaması tarihi alınamadı</string>
|
||||
<string name="security_patch_unable_to_connect">Source.android.com\'a bağlanılamıyor</string>
|
||||
<string name="security_patch_auto_success">Otomatik yapılandırma başarıyla etkinleştirildi</string>
|
||||
<string name="security_patch_auto_failed">Otomatik yapılandırma etkinleştirilemedi</string>
|
||||
<string name="security_patch_save_success">Güvenlik yaması başarıyla kaydedildi</string>
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
<string name="help_add_system_app">Додати системний застосунок</string>
|
||||
<string name="help_add_system_app_description">Додати конкретний системний застосунок до списку.</string>
|
||||
<string name="help_set_keybox">Встановити AOSP та валідний ключ</string>
|
||||
<string name="help_set_keybox_description">Замінити tricky store keybox.xml. Ключа буде замінено на AOSP, якщо не буде валідного. Для використання валідного ключа потрібне з'єднання з інтернетом.</string>
|
||||
<string name="help_set_keybox_description">Замінити tricky store keybox.xml. Для використання валідного ключа потрібне з'єднання з інтернетом.</string>
|
||||
<string name="help_set_custom_keybox">Встановити власний ключ</string>
|
||||
<string name="help_set_custom_keybox_description">Імпортувати ключі зі сховища вашого пристрою. Підтримуються лише xml файли.</string>
|
||||
<string name="help_set_security_patch">Встановити патч безпеки</string>
|
||||
@@ -52,7 +52,6 @@
|
||||
<string name="menu_set_verified_boot_hash">Встановити перевірений хеш завантаження</string>
|
||||
<string name="menu_set_security_patch">Встановити патч безпеки</string>
|
||||
<string name="menu_about">Деталі</string>
|
||||
<string name="menu_shortcut">Створити значок на домашньому екрані</string>
|
||||
<!-- Boot Hash -->
|
||||
<string name="boot_hash_title">Хеш завантаження</string>
|
||||
<string name="boot_hash_input_placeholder">Вставте перевірений хеш завантаження сюди</string>
|
||||
@@ -94,7 +93,6 @@
|
||||
<string name="prompt_no_file_selected">Не вибрано жодного файлу</string>
|
||||
<string name="prompt_system_app_not_found">Системний застосунок не знайдено</string>
|
||||
<string name="prompt_system_app_error">Не вдалося додати системний застосунок</string>
|
||||
<string name="prompt_shortcut_created">Створено значок на домашньому екрані</string>
|
||||
<!-- Security Patch -->
|
||||
<string name="security_patch_title">Патч безпеки</string>
|
||||
<string name="security_patch_advanced_mode">Розширені</string>
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
<string name="help_add_system_app">添加系统应用</string>
|
||||
<string name="help_add_system_app_description">添加特定系统应用到应用列表。</string>
|
||||
<string name="help_set_keybox">设置 AOSP & 有效密钥</string>
|
||||
<string name="help_set_keybox_description">替换 Tricky Store 的密钥(keybox.xml)。如果没有有效密钥,将替换为 AOSP 密钥。有效密钥选项需连网使用。</string>
|
||||
<string name="help_set_keybox_description">替换 Tricky Store 的密钥(keybox.xml)。有效密钥选项需连网使用,不保证能一直提供。</string>
|
||||
<string name="help_set_custom_keybox">设置自定义密钥</string>
|
||||
<string name="help_set_custom_keybox_description">从设备存储导入自定义密钥。仅支持 xml 文件。</string>
|
||||
<string name="help_set_security_patch">设置安全补丁</string>
|
||||
@@ -53,7 +53,6 @@
|
||||
<string name="menu_set_verified_boot_hash">设置哈希值</string>
|
||||
<string name="menu_set_security_patch">设置安全补丁</string>
|
||||
<string name="menu_about">关于</string>
|
||||
<string name="menu_shortcut">创建桌面快捷方式</string>
|
||||
<!-- Boot Hash -->
|
||||
<string name="boot_hash_title">哈希值</string>
|
||||
<string name="boot_hash_input_placeholder">在此粘贴您的哈希值</string>
|
||||
@@ -95,7 +94,6 @@
|
||||
<string name="prompt_no_file_selected">未选择文件</string>
|
||||
<string name="prompt_system_app_not_found">未找到该系统应用</string>
|
||||
<string name="prompt_system_app_error">系统应用添加失败</string>
|
||||
<string name="prompt_shortcut_created">桌面快捷方式已创建</string>
|
||||
<!-- Security Patch -->
|
||||
<string name="security_patch_title">安全补丁</string>
|
||||
<string name="security_patch_advanced_mode">高级</string>
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
<string name="help_add_system_app">添加系統應用</string>
|
||||
<string name="help_add_system_app_description">添加特定系統應用到應用列表。</string>
|
||||
<string name="help_set_keybox">設置 AOSP & 有效密鑰</string>
|
||||
<string name="help_set_keybox_description">替換 Tricky Store 的密鑰(keybox.xml)。如果沒有有效密鑰,將替換為 AOSP 密鑰。有效密鑰選項需連網使用。</string>
|
||||
<string name="help_set_keybox_description">替換 Tricky Store 的密鑰(keybox.xml)。有效密鑰選項需連網使用,不保證能一直提供。</string>
|
||||
<string name="help_set_custom_keybox">設置自定義密鑰</string>
|
||||
<string name="help_set_custom_keybox_description">從設備存儲導入自定義密鑰。僅支持 xml 文件。</string>
|
||||
<string name="help_set_security_patch">設置安全補丁</string>
|
||||
@@ -53,7 +53,6 @@
|
||||
<string name="menu_set_verified_boot_hash">設置哈希值</string>
|
||||
<string name="menu_set_security_patch">設置安全補丁</string>
|
||||
<string name="menu_about">關於</string>
|
||||
<string name="menu_shortcut">建立主畫面捷徑</string>
|
||||
<!-- Boot Hash -->
|
||||
<string name="boot_hash_title">哈希值</string>
|
||||
<string name="boot_hash_input_placeholder">在此貼上您的哈希值</string>
|
||||
@@ -95,7 +94,6 @@
|
||||
<string name="prompt_no_file_selected">未選擇文件</string>
|
||||
<string name="prompt_system_app_not_found">未找到該系統應用</string>
|
||||
<string name="prompt_system_app_error">系統應用添加失敗</string>
|
||||
<string name="prompt_shortcut_created">主畫面捷徑已建立</string>
|
||||
<!-- Security Patch -->
|
||||
<string name="security_patch_title">安全補丁</string>
|
||||
<string name="security_patch_advanced_mode">進階</string>
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
<string name="help_add_system_app">Add System App</string>
|
||||
<string name="help_add_system_app_description">Add specific system app to app list.</string>
|
||||
<string name="help_set_keybox">Set AOSP & Valid Keybox</string>
|
||||
<string name="help_set_keybox_description">Replace tricky store keybox.xml. AOSP keybox will be replaced if there\'s no more valid keybox. Valid keybox option requires Internet connection.</string>
|
||||
<string name="help_set_keybox_description">Replace tricky store keybox.xml. Valid keybox option requires Internet connection and not always available.</string>
|
||||
<string name="help_set_custom_keybox">Set Custom Keybox</string>
|
||||
<string name="help_set_custom_keybox_description">Import keybox from your device storage. Only support xml file.</string>
|
||||
<string name="help_set_security_patch">Set Security Patch</string>
|
||||
@@ -52,8 +52,8 @@
|
||||
<string name="menu_set_custom_keybox">Set Custom Keybox</string>
|
||||
<string name="menu_set_verified_boot_hash">Set Verified Boot Hash</string>
|
||||
<string name="menu_set_security_patch">Set Security Patch</string>
|
||||
<string name="menu_set_devconfig">Set DevConfig</string>
|
||||
<string name="menu_about">About</string>
|
||||
<string name="menu_shortcut">Create home screen shortcut</string>
|
||||
<!-- Boot Hash -->
|
||||
<string name="boot_hash_title">Boot Hash</string>
|
||||
<string name="boot_hash_input_placeholder">Paste your verified Boot Hash here</string>
|
||||
@@ -79,7 +79,7 @@
|
||||
<string name="prompt_save_error">Failed to save config</string>
|
||||
<string name="prompt_uninstall_prompt">WebUI will be removed after reboot</string>
|
||||
<string name="prompt_uninstall_failed">Failed to uninstall WebUI</string>
|
||||
<string name="prompt_checking_update">Checking udpate...</string>
|
||||
<string name="prompt_checking_update">Checking update...</string>
|
||||
<string name="prompt_new_update">A new update is available!</string>
|
||||
<string name="prompt_no_update">There are currently no updates available</string>
|
||||
<string name="prompt_downloading">Downloading new update...</string>
|
||||
@@ -95,7 +95,6 @@
|
||||
<string name="prompt_no_file_selected">No file selected</string>
|
||||
<string name="prompt_system_app_not_found">System app not found</string>
|
||||
<string name="prompt_system_app_error">Failed to add system app</string>
|
||||
<string name="prompt_shortcut_created">Home screen shortcut created</string>
|
||||
<!-- Security Patch -->
|
||||
<string name="security_patch_title">Security Patch</string>
|
||||
<string name="security_patch_advanced_mode">Advanced</string>
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
import { linkRedirect, basePath, showPrompt } from './main.js';
|
||||
import { translations } from './language.js';
|
||||
import { spawn, toast } from './assets/kernelsu.js';
|
||||
import { spawn } from './assets/kernelsu.js';
|
||||
|
||||
const aboutOverlay = document.getElementById('about-overlay');
|
||||
const aboutContent = document.querySelector('.about-menu');
|
||||
|
||||
@@ -32,29 +32,46 @@ export async function fetchAppList() {
|
||||
});
|
||||
|
||||
// Fetch cached applist
|
||||
const response = await fetch('applist.json');
|
||||
const appList = await response.json();
|
||||
const appNameMap = appList.reduce((map, app) => {
|
||||
map[app.package_name] = app.app_name;
|
||||
return map;
|
||||
}, {});
|
||||
let appList = [], appNameMap = {};
|
||||
try {
|
||||
const response = await fetch('applist.json');
|
||||
appList = await response.json();
|
||||
appNameMap = appList.reduce((map, app) => {
|
||||
map[app.package_name] = app.app_name;
|
||||
return map;
|
||||
}, {});
|
||||
} catch (error) {
|
||||
console.warn("Failed to fetch applist.json:", error);
|
||||
appList = [];
|
||||
appNameMap = {};
|
||||
}
|
||||
|
||||
// Get installed packages
|
||||
let appEntries = [], installedPackages = [];
|
||||
const output = spawn('sh', [`${basePath}/common/get_extra.sh`, '--applist']);
|
||||
const output = spawn('sh', [`${basePath}/common/get_extra.sh`, '--applist'], { cwd: "/data/local/tmp" });
|
||||
output.stdout.on('data', (data) => {
|
||||
if (data.trim() === "") return;
|
||||
installedPackages.push(data);
|
||||
});
|
||||
output.stderr.on('data', (data) => {
|
||||
console.error("Error fetching applist: ", data);
|
||||
});
|
||||
output.on('exit', async () => {
|
||||
// Create appEntries array contain { appName, packageName }
|
||||
appEntries = await Promise.all(installedPackages.map(async (packageName) => {
|
||||
if (appNameMap[packageName]) {
|
||||
if (appNameMap[packageName] && appNameMap[packageName].trim() !== '') {
|
||||
return {
|
||||
appName: appNameMap[packageName],
|
||||
appName: appNameMap[packageName].trim(),
|
||||
packageName
|
||||
};
|
||||
}
|
||||
if (typeof ksu.getPackagesInfo === 'function') {
|
||||
const info = JSON.parse(ksu.getPackagesInfo(`[${packageName}]`));
|
||||
return {
|
||||
appName: info[0].appLabel,
|
||||
packageName
|
||||
}
|
||||
}
|
||||
if (typeof $packageManager !== 'undefined') {
|
||||
const info = $packageManager.getApplicationInfo(packageName, 0, 0);
|
||||
return {
|
||||
@@ -67,7 +84,7 @@ export async function fetchAppList() {
|
||||
{ env: { PATH: `$PATH:${basePath}/common:/data/data/com.termux/files/usr/bin` } });
|
||||
output.stdout.on('data', (data) => {
|
||||
resolve({
|
||||
appName: data,
|
||||
appName: data.trim() === '' ? packageName : data.trim(),
|
||||
packageName
|
||||
});
|
||||
});
|
||||
@@ -98,6 +115,10 @@ function renderAppList(data) {
|
||||
loadingIndicator.style.display = "none";
|
||||
hideFloatingBtn(false);
|
||||
if (updateCard) appListContainer.appendChild(updateCard);
|
||||
let showIcon = false;
|
||||
if (typeof $packageManager !== 'undefined' || typeof ksu.getPackagesIcons === 'function') {
|
||||
showIcon = true;
|
||||
}
|
||||
|
||||
// Append app
|
||||
const appendApps = (index) => {
|
||||
@@ -108,9 +129,7 @@ function renderAppList(data) {
|
||||
setupModeMenu();
|
||||
updateCheckboxColor();
|
||||
applyRippleEffect();
|
||||
if (typeof $packageManager !== 'undefined') {
|
||||
setupIconIntersectionObserver();
|
||||
}
|
||||
if (showIcon) setupIconIntersectionObserver();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -140,7 +159,7 @@ function renderAppList(data) {
|
||||
|
||||
const nameElement = appElement.querySelector(".name");
|
||||
nameElement.innerHTML = `
|
||||
<div class="app-icon-container" style="display:${typeof $packageManager !== 'undefined' ? 'flex' : 'none'};">
|
||||
<div class="app-icon-container" style="display:${showIcon ? 'flex' : 'none'};">
|
||||
<div class="loader" data-package="${packageName}"></div>
|
||||
<img src="" class="app-icon" data-package="${packageName}" />
|
||||
</div>
|
||||
@@ -198,7 +217,14 @@ function loadIcons(packageName) {
|
||||
imgElement.src = iconCache.get(packageName);
|
||||
loader.style.display = 'none';
|
||||
imgElement.style.opacity = '1';
|
||||
} else {
|
||||
} else if (typeof ksu.getPackagesIcons === 'function') {
|
||||
const app = JSON.parse(ksu.getPackagesIcons(`[${packageName}]`, 100));
|
||||
console.log(app);
|
||||
iconCache.set(packageName, app[0].icon);
|
||||
imgElement.src = app[0].icon;
|
||||
loader.style.display = 'none';
|
||||
imgElement.style.opacity = '1';
|
||||
} else if (typeof $packageManager !== 'undefined') {
|
||||
const stream = $packageManager.getApplicationIcon(packageName, 0, 0);
|
||||
wrapInputStream(stream)
|
||||
.then(r => r.arrayBuffer())
|
||||
|
||||
@@ -33,7 +33,11 @@ export function exec(command, options = {}) {
|
||||
delete window[successName];
|
||||
}
|
||||
try {
|
||||
ksu.exec(command, JSON.stringify(options), callbackFuncName);
|
||||
if (typeof ksu !== 'undefined') {
|
||||
ksu.exec(command, JSON.stringify(options), callbackFuncName);
|
||||
} else {
|
||||
resolve({ errno: 1, stdout: "", stderr: "ksu is not defined" });
|
||||
}
|
||||
} catch (error) {
|
||||
reject(error);
|
||||
cleanup(callbackFuncName);
|
||||
@@ -96,7 +100,14 @@ export function spawn(command, args = [], options = {}) {
|
||||
window[callbackName] = child;
|
||||
child.on("exit", () => delete window[callbackName]);
|
||||
try {
|
||||
ksu.spawn(command, JSON.stringify(args), JSON.stringify(options), callbackName);
|
||||
if (typeof ksu !== 'undefined') {
|
||||
ksu.spawn(command, JSON.stringify(args), JSON.stringify(options), callbackName);
|
||||
} else {
|
||||
setTimeout(() => {
|
||||
child.emit("error", "ksu is not defined");
|
||||
child.emit("exit", 1);
|
||||
}, 0);
|
||||
}
|
||||
} catch (error) {
|
||||
child.emit("error", error);
|
||||
delete window[callbackName];
|
||||
@@ -111,7 +122,11 @@ export function spawn(command, args = [], options = {}) {
|
||||
*/
|
||||
export function toast(message) {
|
||||
try {
|
||||
ksu.toast(message);
|
||||
if (typeof ksu !== 'undefined') {
|
||||
ksu.toast(message);
|
||||
} else {
|
||||
console.log(message);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("Error displaying toast:", error);
|
||||
}
|
||||
|
||||
@@ -4,6 +4,17 @@ const languageButton = document.querySelector('.language-button');
|
||||
const languageMenu = document.querySelector('.language-menu');
|
||||
const languageOptions = document.querySelectorAll('.language-option');
|
||||
const languageOverlay = document.getElementById('language-overlay');
|
||||
const rtlLang = [
|
||||
'ar', // Arabic
|
||||
'fa', // Persian
|
||||
'he', // Hebrew
|
||||
'ur', // Urdu
|
||||
'ps', // Pashto
|
||||
'sd', // Sindhi
|
||||
'ku', // Kurdish
|
||||
'yi', // Yiddish
|
||||
'dv', // Dhivehi
|
||||
];
|
||||
|
||||
export let translations = {};
|
||||
let baseTranslations = {};
|
||||
@@ -88,6 +99,25 @@ export async function loadTranslations() {
|
||||
translations = baseTranslations;
|
||||
}
|
||||
|
||||
// Support for rtl language
|
||||
const isRTL = rtlLang.includes(lang.split('-')[0]);
|
||||
if (isRTL) {
|
||||
document.documentElement.setAttribute('dir', 'rtl');
|
||||
document.documentElement.setAttribute('lang', lang);
|
||||
|
||||
// Load extra rtl css
|
||||
fetch('styles/rtl_styles.css')
|
||||
.then(res => res.text())
|
||||
.then(css => {
|
||||
const style = document.createElement('style');
|
||||
style.textContent = css;
|
||||
document.head.appendChild(style);
|
||||
});
|
||||
} else {
|
||||
document.documentElement.setAttribute('dir', 'ltr');
|
||||
document.documentElement.setAttribute('lang', lang);
|
||||
}
|
||||
|
||||
// Generate language menu
|
||||
await generateLanguageMenu();
|
||||
} catch (error) {
|
||||
@@ -155,10 +185,10 @@ export function setupLanguageMenu() {
|
||||
languageMenu.addEventListener("click", async (e) => {
|
||||
if (e.target.classList.contains("language-option")) {
|
||||
const lang = e.target.getAttribute("data-lang");
|
||||
localStorage.setItem('trickyAddonLanguage', lang);
|
||||
closeLanguageMenu();
|
||||
await new Promise(resolve => setTimeout(resolve, 200));
|
||||
loadTranslations();
|
||||
if (lang) {
|
||||
localStorage.setItem('trickyAddonLanguage', lang);
|
||||
window.location.reload();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -205,14 +205,6 @@ function checkMMRL() {
|
||||
if (window.$tricky_store && Object.keys($tricky_store).length > 0) {
|
||||
// Set status bars theme based on device theme
|
||||
$tricky_store.setLightStatusBars(!window.matchMedia('(prefers-color-scheme: dark)').matches)
|
||||
|
||||
// Create home screen shortcut
|
||||
const shortcutButton = document.getElementById('shortcut');
|
||||
shortcutButton.style.display = 'flex';
|
||||
shortcutButton.addEventListener('click', () => {
|
||||
$tricky_store.createShortcut();
|
||||
showPrompt("prompt_shortcut_created", true);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { exec, spawn } from './assets/kernelsu.js';
|
||||
import { basePath, showPrompt } from './main.js';
|
||||
import { translations } from './language.js';
|
||||
|
||||
let jamesFork = false;
|
||||
|
||||
@@ -9,17 +10,31 @@ const advancedToggleElement = document.querySelector('.advanced-toggle');
|
||||
const advancedToggle = document.getElementById('advanced-mode');
|
||||
const normalInputs = document.getElementById('normal-mode-inputs');
|
||||
const advancedInputs = document.getElementById('advanced-mode-inputs');
|
||||
const jamesInputs = document.getElementById('james-mode-inputs');
|
||||
const devconfigInputs = document.getElementById('devconfig-mode-inputs');
|
||||
const allPatchInput = document.getElementById('all-patch');
|
||||
const bootPatchInput = document.getElementById('boot-patch');
|
||||
const systemPatchInput = document.getElementById('system-patch');
|
||||
const vendorPatchInput = document.getElementById('vendor-patch');
|
||||
const jamesPatchInput = document.getElementById('james-patch');
|
||||
const jamesOsInput = document.getElementById('james-os');
|
||||
const devconfigPatchInput = document.getElementById('devconfig-securityPatch');
|
||||
const getButton = document.getElementById('get-patch');
|
||||
const autoButton = document.getElementById('auto-config');
|
||||
const saveButton = document.getElementById('save-patch');
|
||||
|
||||
// Configurable options in james' fork
|
||||
const devconfigOption = [
|
||||
'securityPatch',
|
||||
'osVersion',
|
||||
'brand',
|
||||
'device',
|
||||
'product',
|
||||
'manufacturer',
|
||||
'model',
|
||||
'serial',
|
||||
'meid',
|
||||
'imei',
|
||||
'imei2'
|
||||
];
|
||||
|
||||
// Hide security patch dialog
|
||||
const hideSecurityPatchDialog = () => {
|
||||
document.body.classList.remove("no-scroll");
|
||||
@@ -32,7 +47,8 @@ const hideSecurityPatchDialog = () => {
|
||||
|
||||
/**
|
||||
* Save the security patch configuration to file
|
||||
* @param {string} mode - 'disable', 'manual'
|
||||
* @param {string} mode - 'disable',
|
||||
'manual'
|
||||
* @param {string} value - The security patch value to save, if mode is 'manual'.
|
||||
*/
|
||||
function handleSecurityPatch(mode, value = null) {
|
||||
@@ -69,13 +85,14 @@ async function loadCurrentConfig() {
|
||||
if (stdout.trim() !== '') {
|
||||
const lines = stdout.split('\n');
|
||||
for (const line of lines) {
|
||||
if (line.startsWith('securityPatch =')) {
|
||||
const jamesPatchValue = line.split('=')[1].trim().replace(/"/g, '');
|
||||
if (jamesPatchValue !== '') jamesPatchInput.value = jamesPatchValue;
|
||||
}
|
||||
if (line.startsWith('osVersion =')) {
|
||||
const jamesOsVersionValue = line.split('=')[1].trim().replace(/"/g, '');
|
||||
if (jamesOsVersionValue !== '') jamesOsInput.value = jamesOsVersionValue;
|
||||
for (const option of devconfigOption) {
|
||||
if (line.startsWith(`${option} =`)) {
|
||||
const value = line.split('=')[1].trim().replace(/"/g, '');
|
||||
document.getElementById(`devconfig-${option}`).value = value;
|
||||
}
|
||||
if (!stdout.includes(option)) {
|
||||
document.getElementById(`devconfig-${option}`).value = '';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -218,13 +235,14 @@ function isValid8Digit(value) {
|
||||
|
||||
// Initialize event listeners
|
||||
export function securityPatch() {
|
||||
exec(`grep -q "James" "/data/adb/modules/tricky_store/module.prop"`)
|
||||
exec(`grep -q "James" "/data/adb/modules/tricky_store/module.prop" && ! grep -q "beakthoven" "/data/adb/modules/tricky_store/module.prop"`)
|
||||
.then(({ errno }) => {
|
||||
if (errno === 0) {
|
||||
jamesFork = true;
|
||||
document.getElementById('security-patch').textContent = translations.menu_set_devconfig;
|
||||
advancedToggleElement.style.display = 'none';
|
||||
normalInputs.classList.add('hidden');
|
||||
jamesInputs.classList.remove('hidden');
|
||||
devconfigInputs.classList.remove('hidden');
|
||||
}
|
||||
});
|
||||
document.getElementById("security-patch").addEventListener("click", () => {
|
||||
@@ -282,19 +300,45 @@ export function securityPatch() {
|
||||
// Save button
|
||||
saveButton.addEventListener('click', async () => {
|
||||
if (jamesFork) {
|
||||
const securityPatchValue = jamesPatchInput.value.trim();
|
||||
const osVersionValue = jamesOsInput.value.trim();
|
||||
const devconfig = new Map();
|
||||
for (const option of devconfigOption) {
|
||||
const input = document.getElementById(`devconfig-${option}`);
|
||||
if (input.value.trim() === '') continue;
|
||||
devconfig.set(option, input.value.trim());
|
||||
}
|
||||
|
||||
if (!securityPatchValue) handleSecurityPatch('disable');
|
||||
if (!securityPatchValue && !osVersionValue) {
|
||||
if (devconfig.size === 0) {
|
||||
handleSecurityPatch('disable');
|
||||
hideSecurityPatchDialog();
|
||||
return;
|
||||
}
|
||||
|
||||
const config = [
|
||||
securityPatchValue ? `securityPatch = \\"${securityPatchValue}\\"` : '',
|
||||
osVersionValue ? `osVersion = ${osVersionValue}` : ''
|
||||
].filter(Boolean).join('\n');
|
||||
if (!devconfig.has('securityPatch')) {
|
||||
exec('rm -f /data/adb/tricky_store/security_patch_auto_config || true');
|
||||
}
|
||||
|
||||
// Separate top-level and deviceProps
|
||||
const topLevelKeys = ['securityPatch', 'osVersion'];
|
||||
const topLevel = [];
|
||||
const deviceProps = [];
|
||||
|
||||
for (const [key, value] of devconfig.entries()) {
|
||||
if (topLevelKeys.includes(key)) {
|
||||
if (key === 'osVersion') {
|
||||
topLevel.push(`${key} = ${value}`);
|
||||
} else {
|
||||
topLevel.push(`${key} = \\"${value}\\"`);
|
||||
}
|
||||
} else {
|
||||
deviceProps.push(`${key} = \\"${value}\\"`);
|
||||
}
|
||||
}
|
||||
|
||||
let config = topLevel.join('\n');
|
||||
if (deviceProps.length > 0) {
|
||||
config += `\n[deviceProps]\n` + deviceProps.join('\n');
|
||||
}
|
||||
|
||||
handleSecurityPatch('manual', config);
|
||||
} else if (!advancedToggle.checked) {
|
||||
// Normal mode validation
|
||||
@@ -356,6 +400,7 @@ export function securityPatch() {
|
||||
allPatchInput.value = '';
|
||||
}
|
||||
}
|
||||
overlayContent.scrollTop = 0;
|
||||
hideSecurityPatchDialog();
|
||||
loadCurrentConfig();
|
||||
});
|
||||
@@ -373,7 +418,7 @@ export function securityPatch() {
|
||||
systemPatchInput.value = 'prop';
|
||||
bootPatchInput.value = data;
|
||||
vendorPatchInput.value = data;
|
||||
jamesPatchInput.value = data;
|
||||
devconfigPatchInput.value = data;
|
||||
});
|
||||
output.stderr.on('data', (data) => {
|
||||
if (data.includes("failed")) {
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
.about-menu p {
|
||||
margin: 0;
|
||||
font-size: 16px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#module_name_line1 {
|
||||
@@ -55,10 +54,9 @@
|
||||
.link-icon {
|
||||
font-size: 17px;
|
||||
font-weight: bold;
|
||||
min-height: calc(1em + 15px);
|
||||
min-height: calc(1em + 20px);
|
||||
padding: 3px 10px;
|
||||
color: #fff;
|
||||
fill: #fff;
|
||||
user-select: none;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
@@ -69,6 +67,7 @@
|
||||
transition: background-color 0.2s ease;
|
||||
|
||||
svg {
|
||||
fill: #fff;
|
||||
padding-right: 3px;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -273,7 +273,6 @@
|
||||
display: inline-block;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
margin-left: auto;
|
||||
}
|
||||
|
||||
.checkbox {
|
||||
|
||||
@@ -71,12 +71,12 @@
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.file-item svg {
|
||||
flex-shrink: 0;
|
||||
margin-right: 10px;
|
||||
fill: var(--text-secondary);
|
||||
svg {
|
||||
flex-shrink: 0;
|
||||
margin-right: 10px;
|
||||
fill: var(--text-secondary);
|
||||
}
|
||||
}
|
||||
|
||||
.file-item span {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
@import url('https://mui.kernelsu.org/mmrl/insets.css');
|
||||
@import url('https://mui.kernelsu.org/mmrl/colors.css');
|
||||
@import url('https://mui.kernelsu.org/internal/insets.css');
|
||||
@import url('https://mui.kernelsu.org/internal/colors.css');
|
||||
|
||||
:root {
|
||||
--top-inset: var(--window-inset-top, 0px);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
.header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
justify-content: flex-start;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
@@ -27,26 +27,34 @@
|
||||
}
|
||||
|
||||
.no-connection {
|
||||
padding: 0;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
display: none;
|
||||
margin-right: 0px;
|
||||
background: none;
|
||||
border: none;
|
||||
|
||||
svg {
|
||||
fill: var(--border-color);
|
||||
}
|
||||
}
|
||||
|
||||
.language-dropdown {
|
||||
margin-left: auto;
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.language-button {
|
||||
padding-top: 5px;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
background: none;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.language-icon {
|
||||
fill: var(--text-primary);
|
||||
svg {
|
||||
fill: var(--text-primary);
|
||||
}
|
||||
}
|
||||
|
||||
.language-menu {
|
||||
@@ -121,10 +129,16 @@
|
||||
}
|
||||
|
||||
.help-button {
|
||||
padding-left: 5px;
|
||||
margin-right: auto;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 5px;
|
||||
background: none;
|
||||
border: none;
|
||||
|
||||
svg {
|
||||
fill: var(--border-color);
|
||||
}
|
||||
}
|
||||
|
||||
.help-overlay {
|
||||
@@ -139,7 +153,6 @@
|
||||
background-color: var(--bg-secondary);
|
||||
padding: 30px;
|
||||
border-radius: 15px;
|
||||
text-align: left;
|
||||
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
@@ -148,7 +161,9 @@
|
||||
flex-direction: column;
|
||||
gap: 20px;
|
||||
max-height: calc(85vh - 60px);
|
||||
padding-bottom: 20px;
|
||||
overflow-y: auto;
|
||||
mask-image: linear-gradient(black 0%, black calc(100% - 20px), transparent 100%);
|
||||
}
|
||||
|
||||
.help-content-header {
|
||||
|
||||
57
module/webui/styles/rtl_styles.css
Normal file
57
module/webui/styles/rtl_styles.css
Normal file
@@ -0,0 +1,57 @@
|
||||
#module-version,
|
||||
#title {
|
||||
padding-left: unset;
|
||||
padding-right: 5px;
|
||||
}
|
||||
|
||||
.language-dropdown {
|
||||
margin-left: unset;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
.language-menu {
|
||||
right: unset;
|
||||
left: 5px;
|
||||
transform-origin: top left;
|
||||
}
|
||||
|
||||
.close-btn {
|
||||
right: unset;
|
||||
left: 12px;
|
||||
}
|
||||
|
||||
.search-icon {
|
||||
left: unset;
|
||||
right: 15px;
|
||||
}
|
||||
|
||||
.search-card {
|
||||
left: unset;
|
||||
right: 0;
|
||||
}
|
||||
|
||||
.menu {
|
||||
right: unset;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.menu-options {
|
||||
right: unset;
|
||||
left: 0;
|
||||
transform: translateX(-120%);
|
||||
}
|
||||
|
||||
.app-icon-container {
|
||||
margin-right: unset;
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.link-icon svg {
|
||||
padding-right: unset;
|
||||
padding-left: 3px;
|
||||
}
|
||||
|
||||
.file-item svg {
|
||||
margin-right: unset;
|
||||
margin-left: 10px;
|
||||
}
|
||||
@@ -113,7 +113,6 @@
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
#shortcut,
|
||||
#select-denylist,
|
||||
#security-patch {
|
||||
display: none;
|
||||
@@ -133,7 +132,6 @@
|
||||
|
||||
.menu-options li {
|
||||
padding: 12px 15px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.menu-options li::after {
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
|
||||
width: calc(90% - 60px);
|
||||
max-width: 300px;
|
||||
max-height: calc(80% - 60px);
|
||||
max-height: calc(60% - 60px);
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"versionCode": 538,
|
||||
"version": "v4.0",
|
||||
"zipUrl": "https://github.com/KOWX712/Tricky-Addon-Update-Target-List/releases/download/v4.0/TrickyAddonModule-v4.0.zip",
|
||||
"versionCode": 572,
|
||||
"version": "v4.1",
|
||||
"zipUrl": "https://github.com/KOWX712/Tricky-Addon-Update-Target-List/releases/download/v4.1/TrickyAddonModule-v4.1.zip",
|
||||
"changelog": "https://raw.githubusercontent.com/KOWX712/Tricky-Addon-Update-Target-List/main/changelog.md"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user