Compare commits

48 Commits
v4.0 ... main

Author SHA1 Message Date
KOWX712
8237a5f6fd deps: update workflow 2025-08-28 21:39:07 +08:00
KOWX712
d9c05cb0e8 misc: change crowdin schedule to weekly 2025-08-28 21:36:48 +08:00
KOWX712
c8dbbce80c opt: update kernelsu.js 2025-08-28 21:34:38 +08:00
KOWX712
422d05e97b opt: update color scheme 2025-08-28 21:34:25 +08:00
KOWX712
070f8a7597 misc: update .extra
Signed-off-by: KOWX712 <leecc0503@gmail.com>
2025-08-28 02:06:29 +08:00
Juno Bủh
8cb83690d6 fix: Vietnamese language name (#102) 2025-08-16 23:38:09 +08:00
KOWX712
ad3e1f7bb1 opt: sync translation from Crowdin (#94)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-08-15 15:11:54 +08:00
Juno Bủh
ddac4adf7d opt: update Vietnamese Translation (#98) 2025-08-12 18:03:17 +08:00
Tam Huynh
f1665c54e9 feat: Add Vietnamese translation (#96) 2025-08-12 01:14:13 +08:00
github-actions[bot]
b4aa08cf3f deps: update OpenSSL binaries 2025-08-09 14:37:53 +00:00
KOWX712
b5d4efb292 fix: missing set security patch option in beakthoven's fork
latest version of beakthoven's TS fork has removed other author from module.prop and causing unsupported version.
2025-08-09 22:37:36 +08:00
KOWX712
0a9750902d misc: update .extra 2025-07-28 13:10:34 +08:00
KOWX712
2f5dd03530 opt: refine rtl related code 2025-07-26 00:41:36 +08:00
KOWX712
3d9d2843fe misc: drop unknown key generation workflow
branch will be removed in next release, all unknown keybox user should update to v4.0 or newer version
2025-07-25 18:56:26 +08:00
KOWX712
9cc603f36a v4.1 release 2025-07-25 10:51:45 +00:00
KOWX712
4dfa542940 fix: wrong link localization guide 2025-07-23 21:36:47 +08:00
KOWX712
176a4c1654 misc: update .extra 2025-07-23 01:25:04 +08:00
Dakkshesh
e91bd510e9 feat: add support for Dakkshesh's TrickyStore fork (#93)
- This fork is based on qwq233's version and includes both their name and mine in module.prop.
- Unlike qwq233's fork, this version aligns more closely with the official implementation and supports security_patch.txt.
- Updated the author name check to ensure the module is only classified as qwq233's fork if my name is not present.

TrickyStore OSS: https://github.com/beakthoven/TrickyStore

Signed-off-by: Dakkshesh <dakkshesh5@gmail.com>
2025-07-23 00:10:22 +08:00
KOWX712
976ff21141 opt: use gh cli instead of github api 2025-07-20 09:32:15 +08:00
KOWX712
ae12fe8b28 feat: add device props support for qwq233' TS fork
ref: bab87cef90
2025-07-18 15:18:06 +08:00
KOWX712
36325fc241 misc: update .extra 2025-07-16 01:28:01 +08:00
KOWX712
9b4cf45887 misc: update translation guide 2025-07-15 08:52:48 +08:00
KOWX712
276d5fc4fc opt: sync translation from Crowdin (#82)
Co-Authored-By: Crowdin Bot <support+bot@crowdin.com>
Co-Authored-By: Re*Index. (ot_inc) <32851879+reindex-ot@users.noreply.github.com>
2025-07-15 08:46:16 +08:00
KOWX712
f1de41bd2f misc: wait for next 2025-07-15 08:19:20 +08:00
KOWX712
aa7b5b7573 feat: auto security patch support for pif.prop 2025-07-13 19:01:39 +08:00
Peace
c9ae860ae2 misc: update readme (#88)
Replace MMRL with WebUI X
2025-07-11 13:47:43 +08:00
KOWX712
1b8fff9347 misc: update .extra 2025-07-11 01:28:08 +08:00
KOWX712
f904ed2bec misc: add translation contributor list 2025-07-10 03:51:17 +08:00
KOWX712
023af806b1 fix: handle condition when app name contain newline charater 2025-07-07 00:29:17 +08:00
KOWX712
311124f3cf opt: handle get applist error 2025-07-06 00:15:31 +08:00
KOWX712
18a9d41fde opt: update kernelsu.js 2025-07-06 00:15:31 +08:00
KOWX712
3668cfe033 misc: update issue placeholder
xml format is unsupported attachment format
2025-07-05 00:18:52 +08:00
KOWX712
df0dfefaa2 opt: applist cache method
grep exact match pattern
2025-07-04 03:26:58 +08:00
KOWX712
c21aa9994b feat: add support for new ksu package manager api 2025-07-04 03:26:58 +08:00
KOWX712
b58397da61 misc: drop homescreen shortcut button
this feature is no longer needed since you can add shortcut from webui-x manager.
2025-07-03 20:56:28 +08:00
KOWX712
e4f1c7fcc8 misc: update WebUI-X css import address 2025-07-02 20:35:54 +08:00
KOWX712
9c8cb9b6c2 opt: handle error when failed to fetch applist.json 2025-07-02 15:20:48 +08:00
github-actions[bot]
8d2cb81ae6 deps: update OpenSSL binaries 2025-07-02 06:44:31 +00:00
KOWX712
7220ab62b4 opt: sync translation from Crowdin (#74)
Russian translation update by: https://crowdin.com/profile/deflecta
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
Co-Authored-By: Re*Index. (ot_inc) <32851879+reindex-ot@users.noreply.github.com>
Co-Authored-By: ZGX089ッ <159061718+ZG089@users.noreply.github.com>
Co-Authored-By: xxOrdulu52xx <34343052+xxordulu52xx@users.noreply.github.com>
2025-07-02 14:44:22 +08:00
KOWX712
c1860c0d0b misc: remove auto approve imported 2025-07-02 14:36:51 +08:00
KOWX712
425b8f72bf misc: wait for next 2025-07-01 14:20:24 +08:00
xxOrdulu52xx
a1df41bd01 feat: add German translation (#78) 2025-06-27 18:23:46 +08:00
KOWX712
46e4e68dc2 misc: update .extra 2025-06-25 23:05:25 +08:00
KOWX712
453198c888 fix: typo 2025-06-24 23:35:36 +08:00
KOWX712
b3bf8bdde8 opt: sync translation from Crowdin (#72)
Co-Authored-By: cvnertnc <148134890+cvnertnc@users.noreply.github.com>
Co-Authored-By: GRgabrix <103899172+grgabrix@users.noreply.github.com>
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-06-23 16:24:27 +08:00
KOWX712
b0025ea5d5 feat: add rtl language ui support 2025-06-20 13:51:56 +08:00
KOWX712
38848fa891 misc: update instruction 2025-06-20 03:08:34 +08:00
KOWX712
4cd2083b94 fix: typo 2025-06-19 21:09:05 +08:00
54 changed files with 1163 additions and 249 deletions

2
.extra

File diff suppressed because one or more lines are too long

View File

@@ -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

View File

@@ -11,6 +11,9 @@ on:
- 'module/**'
workflow_dispatch:
env:
GH_TOKEN: ${{ github.token }}
jobs:
build:
name: build
@@ -19,7 +22,7 @@ jobs:
version_tag_exists: ${{ steps.check_tag.outputs.version_tag_exists }}
steps:
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@v5
with:
fetch-depth: 0
fetch-tags: true
@@ -43,10 +46,10 @@ jobs:
if: github.event_name != 'pull_request'
run: |
# marked.js
curl -Ls https://cdn.jsdelivr.net/npm/marked/marked.min.js > module/webui/scripts/assets/marked.min.js
curl -LSs https://cdn.jsdelivr.net/npm/marked/marked.min.js > module/webui/scripts/assets/marked.min.js || echo "Failed to download 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
@@ -112,7 +115,7 @@ jobs:
if: ${{ needs.build.outputs.version_tag_exists == 'false' && github.event_name != 'pull_request' }}
steps:
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@v5
with:
fetch-depth: 0

View File

@@ -1,4 +1,4 @@
name: Crowdin Action
name: crowdin
on:
push:
@@ -6,7 +6,7 @@ on:
paths:
- 'module/webui/locales/strings/*.xml'
schedule:
- cron: '0 0 * * *'
- cron: '0 0 * * 0'
workflow_dispatch:
jobs:
@@ -14,14 +14,13 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v5
- name: Crowdin Action
uses: crowdin/github-action@v2
with:
upload_sources: true
upload_translations: true
auto_approve_imported: true
download_translations: true
skip_untranslated_files: false
skip_untranslated_strings: true

View File

@@ -1,35 +0,0 @@
name: generate
on:
schedule:
- cron: "0 0 * * *"
workflow_dispatch:
jobs:
generate:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
with:
ref: 'bot'
- name: Generate and encode
run: |
curl -Ls https://raw.githubusercontent.com/KOWX712/keyboxGenerator/main/keyboxGenerator_v2.0.py | python3
base64 -w 0 "keybox.xml" | xxd -p | tr -d '\n' > .device
- name: Commit changes
run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com"
git add .device
LAST_COMMIT_MSG=$(git log -1 --pretty=%B)
if [[ "$LAST_COMMIT_MSG" == "Update .device" ]]; then
git commit --amend --no-edit
git push --force
else
git commit -m "Update .device"
git push
fi

1
.gitignore vendored
View File

@@ -1,3 +1,4 @@
__MACOSX
.DS_Store
applist.json
changelog_draft.md

View File

@@ -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

View File

@@ -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.

View File

@@ -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"

View File

@@ -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

View File

@@ -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"

View File

@@ -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>

View File

@@ -0,0 +1,110 @@
# 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)
- [Mesazane](https://github.com/mesazane)
---
## Italian
- [luigimak](https://github.com/luigimak)
- [GRgabrix](https://github.com/GRgabrix)
---
## Japanese
- [reindex-ot](https://github.com/reindex-ot)
---
## Korean
- [dhlrunner](https://github.com/dhlrunner)
---
## Polish
- [Bladius2024](https://github.com/Bladius2024)
---
## Portuguese (Brazilian)
- [JeanxPereira](https://github.com/JeanxPereira)
- [SecretGogeta](https://github.com/SecretGogeta)
---
## Russian
- [Andfi](https://crowdin.com/profile/andfi)
---
## 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)
- [Валентин Паник](https://crowdin.com/profile/panikvalentin)
---
## Vietnamese
- [doanvtamhuynh](https://github.com/doanvtamhuynh)
- [SaleOff](https://github.com/SaleOff)

View File

@@ -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).

View File

@@ -1,19 +1,24 @@
{
"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",
"ko": "한국어",
"pt-BR": "Português",
"pl": "Polski",
"ru": "Русский",
"tl": "Filipino",
"tr": "Türkçe",
"uk": "Українська",
"vi": "Tiếng Việt",
"zh-CN": "简体中文",
"zh-TW": "繁體中文"
}

View File

@@ -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>

View File

@@ -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 &amp; 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>

View 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>

View 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 &amp; 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- &amp; 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>

View File

@@ -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 &amp; Έγκυρο 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>

View File

@@ -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 &amp; 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>

View File

@@ -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>

View 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>

View File

@@ -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 &amp; Valide</string>
<string name="help_set_keybox_description">Remplacer le fichier keybox.xml de Tricky Store. La keybox AOSP sera remplacée s&apos;il n&apos;y a plus de keybox valide. L&apos;option keybox valide nécessite une connexion Internet.</string>
<string name="help_set_keybox_description">Remplacer le fichier keybox.xml de Tricky Store. L&apos;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&apos;écran d&apos;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&apos;ajout de l&apos;application système</string>
<string name="prompt_shortcut_created">Raccourci créé sur l&apos;écran d&apos;accueil</string>
<!-- Security Patch -->
<string name="security_patch_title">Patch de sécurité</string>
<string name="security_patch_advanced_mode">Avancé</string>

View File

@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="system_default">Default Sistem</string>
<string name="more_language">Lainnya</string>
<!-- Header -->
<string name="header_title">Tricky Addon</string>
<!-- Help Menu-->
@@ -18,7 +19,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 &amp; 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>
@@ -51,8 +52,8 @@
<string name="menu_set_custom_keybox">Gunakan Keybox Kustom</string>
<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_set_devconfig">Atur Konfigurasi Pengembang</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>
@@ -62,6 +63,7 @@
<string name="about_module_name_line2">Perbarui Daftar Target</string>
<string name="about_by">oleh</string>
<string name="about_telegram_channel">Saluran Telegram</string>
<string name="about_canary_update">Perbarui ke versi Canary terbaru</string>
<string name="about_disclaimer">Modul ini bukan bagian dari Tricky Store. Jangan laporkan masalah ke Tricky Store jika mengalami kendala.</string>
<string name="about_acknowledgment">Pengakuan</string>
<!-- Prompt -->
@@ -77,7 +79,9 @@
<string name="prompt_save_error">Gagal menyimpan konfigurasi</string>
<string name="prompt_uninstall_prompt">WebUI akan dicopot setelah perangkat dimulai ulang</string>
<string name="prompt_uninstall_failed">Gagal mencopot pemasangan WebUI</string>
<string name="prompt_checking_update">Memeriksa pembaruan...</string>
<string name="prompt_new_update">Pembaruan baru tersedia!</string>
<string name="prompt_no_update">Saat ini tidak ada pembaruan yang tersedia</string>
<string name="prompt_downloading">Mengunduh pembaruan...</string>
<string name="prompt_downloaded">Unduhan selesai</string>
<string name="prompt_download_fail">Gagal mengunduh pembaruan</string>
@@ -91,7 +95,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>

View File

@@ -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&apos;elenco delle app.</string>
<string name="help_set_keybox">Imposta AOSP &amp; 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&apos;opzione valida per la keybox richiede una connessione Internet.</string>
<string name="help_set_keybox_description">Sostituisci tricky store keybox.xml. L&apos;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&apos;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&apos;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&apos;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&apos;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>

View File

@@ -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>
@@ -51,8 +52,8 @@
<string name="menu_set_custom_keybox">カスタム Keybox を設定</string>
<string name="menu_set_verified_boot_hash">確認付きブートハッシュを設定</string>
<string name="menu_set_security_patch">セキュリティパッチを設定</string>
<string name="menu_set_devconfig">DevConfig を設定</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 +63,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 +77,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 +95,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>

View 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">모두 선택 &amp; 모두 선택 해제</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 모듈, 루트 관리자, 루트 관련 앱, 및 부트로더 상태를 절대 확인하지 않는 일반 앱을 선택 해제합니다. 이 옵션은 인터넷 연결이 필요합니다.</string>
<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을 교체합니다. 유효 키박스 옵션은 인터넷 연결이 필요하며 항상 사용할 수 있는 것은 아닙니다.</string>
<string name="help_set_custom_keybox">유저 정의 키박스 설정</string>
<string name="help_set_custom_keybox_description">기기 저장소에서 키박스를 가져옵니다. 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 해시 설정</string>
<string name="help_set_verified_boot_hash_description">Key Attestation Demo에서 검증된 verifiedBootHash 값을 가져옵니다. 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 키박스 설정</string>
<string name="menu_set_unknown_keybox">알 수 없는 키박스 설정</string>
<string name="menu_set_valid_keybox">유효 키박스 설정</string>
<string name="menu_set_custom_keybox">유저 정의 키박스 설정</string>
<string name="menu_set_verified_boot_hash">Verified Boot 해시 설정</string>
<string name="menu_set_security_patch">보안 패치 설정</string>
<string name="menu_set_devconfig">DevConfig 설정</string>
<string name="menu_about">정보</string>
<!-- Boot Hash -->
<string name="boot_hash_title">부트 해시</string>
<string name="boot_hash_input_placeholder">여기에 검증된 Boot Hash 값을 입력하세요.</string>
<string name="boot_hash_save_button">저장</string>
<!-- About -->
<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 키박스가 성공적으로 설정되었습니다.</string>
<string name="prompt_key_set_error">키박스 갱신에 실패했습니다.</string>
<string name="prompt_unknown_key_set">알 수 없는 키박스가 성공적으로 설정되었습니다.</string>
<string name="prompt_valid_key_set">유효 키박스가 성공적으로 설정되었습니다.</string>
<string name="prompt_no_valid">유효 키박스를 찾을수 없습니다.</string>
<string name="prompt_boot_hash_set">Verified Boot 해쉬가 성공적으로 설정되었습니다.</string>
<string name="prompt_boot_hash_set_error">Verified Boot 설정에 실패했습니다.</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">유저 정의 키박스가 성공적으로 설정되었습니다.</string>
<string name="prompt_custom_key_set_error">유저 정의 키박스 설정에 실패했습니다.</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_title">보안 패치</string>
<string name="security_patch_advanced_mode">고급</string>
<string name="security_patch_get_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">보안 패치 날짜 취득에 실패했습니다.</string>
<string name="security_patch_unable_to_connect">source.android.com에 연결할 수 없습니다.</string>
<string name="security_patch_auto_success">자동 설정이 켜졌습니다.</string>
<string name="security_patch_auto_failed">자동 설정 활성화에 실패했습니다.</string>
<string name="security_patch_save_success">보안 패치를 성공적으로 저장했습니다.</string>
<string name="security_patch_save_failed">보안 패치 저장에 실패했습니다.</string>
<string name="security_patch_value_empty">보안 패치 구성이 비활성화 되어 있습니다.</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>

View File

@@ -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>

View File

@@ -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 &amp; 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>

View File

@@ -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-->
@@ -17,13 +18,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 &amp; и действующий 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 +46,14 @@
<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_set_devconfig">Установить DevConfig</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>
@@ -62,6 +63,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">Этот WebUI не является частью Tricky Store, НЕ сообщайте автору Tricky Store о любых возникающих проблемах.</string>
<string name="about_acknowledgment">Благодарности</string>
<!-- Prompt -->
@@ -77,7 +79,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 +95,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>
@@ -101,6 +104,7 @@
<string name="security_patch_fetching">Получение...</string>
<string name="security_patch_fetched">Готово</string>
<string name="security_patch_get_failed">Не удалось получить дату патча безопасности</string>
<string name="security_patch_unable_to_connect">Не удалось подключиться к source.android.com</string>
<string name="security_patch_auto_success">Автоматическая конфигурация успешно включена</string>
<string name="security_patch_auto_failed">Не удалось включить автоматическую конфигурацию</string>
<string name="security_patch_save_success">Патч безопасности успешно сохранен</string>

View File

@@ -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>

View File

@@ -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 &amp; Geçerli Keybox Ayarla</string>
<string name="help_set_keybox_description">Tricky Store&apos;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&apos;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&apos;inizi buraya yapıştırın</string>
@@ -62,6 +62,7 @@
<string name="about_module_name_line2">Target List&apos;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&apos;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>

View File

@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="system_default">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 та валідний ключ</string>
<string name="help_set_keybox_description">Замінити tricky store keybox.xml. Ключа буде замінено на AOSP, якщо не буде валідного. Для використання валідного ключа потрібне з&apos;єднання з інтернетом.</string>
<string name="help_set_keybox_description">Замінити tricky store keybox.xml. Для використання валідного ключа потрібне з&apos;єднання з інтернетом.</string>
<string name="help_set_custom_keybox">Встановити власний ключ</string>
<string name="help_set_custom_keybox_description">Імпортувати ключі зі сховища вашого пристрою. Підтримуються лише xml файли.</string>
<string name="help_set_security_patch">Встановити патч безпеки</string>
@@ -51,8 +52,8 @@
<string name="menu_set_custom_keybox">Встановити користувацький ключ</string>
<string name="menu_set_verified_boot_hash">Встановити перевірений хеш завантаження</string>
<string name="menu_set_security_patch">Встановити патч безпеки</string>
<string name="menu_set_devconfig">Встановити конфігурацію розробника</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 +95,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>

View File

@@ -0,0 +1,123 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="system_default">Mặc định hệ thống</string>
<string name="more_language">Thêm</string>
<!-- Header -->
<!-- Help Menu-->
<string name="help_help_instructions">Hướng dẫn</string>
<string name="help_save_and_update">Lưu</string>
<string name="help_save_and_update_description">Lưu cấu hình hiện tại vào target.txt</string>
<string name="help_refresh">Làm mới</string>
<string name="help_refresh_description">Làm mới danh sách ứng dụng và danh sách loại trừ</string>
<string name="help_select_deselect">Chọn &amp; Bỏ chọn tất cả</string>
<string name="help_select_description">Chọn hoặc bỏ chọn tất cả ứng dụng trong giao diện hiện tại</string>
<string name="help_select_denylist">Chọn từ DenyList</string>
<string name="help_select_denylist_description">Chỉ khả dụng trong Magisk, chọn ứng dụng nằm trong DenyList. Khuyến nghị sử dụng</string>
<string name="help_deselect_unnecessary">Bỏ chọn không cần thiết</string>
<string name="help_deselect_unnecessary_description">Danh mục không cần thiết: Trình quản lý root, module Xposed, ứng dụng liên quan đến root và các ứng dụng thông thường không bao giờ kiểm tra trạng thái bootloader. Tùy chọn này yêu cầu kết nối Internet</string>
<string name="help_add_system_app">Thêm ứng dụng hệ thống</string>
<string name="help_add_system_app_description">Thêm ứng dụng hệ thống cụ thể vào danh sách ứng dụng</string>
<string name="help_set_keybox">Đặt AOSP &amp; Keybox hợp lệ</string>
<string name="help_set_keybox_description">Thay thế keybox.xml của Tricky Store. Tùy chọn Keybox hợp lệ yêu cầu kết nối Internet và không phải lúc nào cũng khả dụng</string>
<string name="help_set_custom_keybox">Đặt Keybox tùy chỉnh</string>
<string name="help_set_custom_keybox_description">Nhập Keybox từ bộ nhớ thiết bị của bạn. Chỉ hỗ trợ tệp xml</string>
<string name="help_set_security_patch">Đặt bản vá bảo mật</string>
<string name="help_set_security_patch_description">Đặt spoof bản vá bảo mật tùy chỉnh. Cấu hình tự động sẽ sử dụng bản vá bảo mật từ module PIF. Để trống và lưu để tắt cấu hình tự động</string>
<string name="help_set_verified_boot_hash">Đặt Verified Boot Hash</string>
<string name="help_set_verified_boot_hash_description">Lấy giá trị verifiedBootHash từ Key Attestation Demo. Sửa trạng thái boot bất thường bằng cách đặt lại ro.boot.vbmeta.digest</string>
<!-- Update -->
<string name="update_update_available">Đã có phiên bản mới</string>
<string name="update_redirect_to_release">Nhấn để tải phiên bản mới nhất</string>
<string name="update_changelog">Nhật ký thay đổi</string>
<string name="update_install">Cài đặt</string>
<string name="update_reboot">Khởi động lại</string>
<!-- Search -->
<string name="search_bar_search_placeholder">Tìm kiếm</string>
<!-- Functional Button -->
<string name="functional_button_save_and_update_button">Lưu</string>
<string name="functional_button_uninstall_webui">Gỡ cài đặt WebUI</string>
<!-- Loading -->
<string name="loading_loading">Đang tải...</string>
<!-- Menu -->
<string name="menu_refresh">Làm mới</string>
<string name="menu_select_all">Chọn tất cả</string>
<string name="menu_deselect_all">Bỏ chọn tất cả</string>
<string name="menu_select_denylist">Chọn từ DenyList</string>
<string name="menu_deselect_unnecessary">Bỏ chọn không cần thiết</string>
<string name="menu_add_system_app">Thêm ứng dụng hệ thống</string>
<string name="menu_set_aosp_keybox">Đặt AOSP Keybox</string>
<string name="menu_set_unknown_keybox">Đặt Keybox không xác định</string>
<string name="menu_set_valid_keybox">Đặt Keybox hợp lệ</string>
<string name="menu_set_custom_keybox">Đặt Keybox tùy chỉnh</string>
<string name="menu_set_verified_boot_hash">Đặt Verified Boot Hash</string>
<string name="menu_set_security_patch">Đặt bản vá bảo mật</string>
<string name="menu_set_devconfig">Đặt DevConfig</string>
<string name="menu_about">Giới thiệu</string>
<!-- Boot Hash -->
<string name="boot_hash_input_placeholder">Dán Verified Boot Hash của bạn vào đây</string>
<string name="boot_hash_save_button">Lưu</string>
<!-- About -->
<string name="about_module_name_line2">Cập nhật danh sách mục tiêu</string>
<string name="about_by">Bởi</string>
<string name="about_telegram_channel">Kênh Telegram</string>
<string name="about_canary_update">Cập nhật lên phiên bản canary mới nhất</string>
<string name="about_disclaimer">Module này không phải là một phần của module Tricky Store. KHÔNG báo cáo bất kỳ vấn đề nào cho Tricky Store nếu gặp phải</string>
<string name="about_acknowledgment">Lời cảm ơn</string>
<!-- Prompt -->
<string name="prompt_no_internet">Vui lòng kiểm tra kết nối Internet của bạn</string>
<string name="prompt_aosp_key_set">Đã đặt AOSP keybox thành công</string>
<string name="prompt_key_set_error">Không thể cập nhật keybox</string>
<string name="prompt_unknown_key_set">Đã đặt keybox không xác định thành công</string>
<string name="prompt_valid_key_set">Đã đặt keybox hợp lệ thành công</string>
<string name="prompt_no_valid">Không tìm thấy Keybox hợp lệ</string>
<string name="prompt_boot_hash_set">Đã lưu Verified Boot Hash thành công</string>
<string name="prompt_boot_hash_set_error">Không thể cập nhật Verified Boot Hash</string>
<string name="prompt_saved_target">Đã lưu cấu hình vào target.txt</string>
<string name="prompt_save_error">Không thể lưu cấu hình</string>
<string name="prompt_uninstall_prompt">WebUI sẽ bị Gỡ cài đặt sau khi khởi động lại</string>
<string name="prompt_uninstall_failed">Không thể Gỡ cài đặt WebUI</string>
<string name="prompt_checking_update">Đang kiểm tra cập nhật...</string>
<string name="prompt_new_update">Có bản cập nhật mới!</string>
<string name="prompt_no_update">Hiện không có bản cập nhật nào</string>
<string name="prompt_downloading">Đang tải bản cập nhật mới...</string>
<string name="prompt_downloaded">Tải xuống hoàn tất</string>
<string name="prompt_download_fail">Không thể tải bản cập nhật</string>
<string name="prompt_installing">Đang cài đặt bản cập nhật...</string>
<string name="prompt_installed">Cài đặt thành công, khởi động lại ngay.</string>
<string name="prompt_install_fail">Không thể cài đặt, vui lòng cập nhật thủ công</string>
<string name="prompt_rebooting">Đang khởi động lại...</string>
<string name="prompt_reboot_fail">Không thể khởi động lại, vui lòng khởi động lại thủ công</string>
<string name="prompt_custom_key_set">Đã đặt keybox tùy chỉnh thành công</string>
<string name="prompt_custom_key_set_error">Không thể đặt keybox tùy chỉnh</string>
<string name="prompt_no_file_selected">Chưa chọn tệp nào</string>
<string name="prompt_system_app_not_found">Không tìm thấy ứng dụng hệ thống</string>
<string name="prompt_system_app_error">Không thể thêm ứng dụng hệ thống</string>
<!-- Security Patch -->
<string name="security_patch_title">Bản vá bảo mật</string>
<string name="security_patch_advanced_mode">Nâng cao</string>
<string name="security_patch_get_date">Lấy ngày bản vá bảo mật</string>
<string name="security_patch_auto">Tự động</string>
<string name="security_patch_save">Lưu</string>
<string name="security_patch_fetching">Đang lấy...</string>
<string name="security_patch_fetched">Hoàn tất</string>
<string name="security_patch_get_failed">Không thể lấy ngày bản vá bảo mật</string>
<string name="security_patch_unable_to_connect">Không thể kết nối tới source.android.com</string>
<string name="security_patch_auto_success">Bật cấu hình tự động thành công</string>
<string name="security_patch_auto_failed">Không thể bật cấu hình tự động</string>
<string name="security_patch_save_success">Đã lưu bản vá bảo mật thành công</string>
<string name="security_patch_save_failed">Không thể lưu bản vá bảo mật</string>
<string name="security_patch_value_empty">Đã tắt cấu hình bản vá bảo mật</string>
<string name="security_patch_invalid_all">Định dạng không hợp lệ</string>
<string name="security_patch_invalid_boot">Định dạng boot không hợp lệ</string>
<string name="security_patch_invalid_system">Định dạng system không hợp lệ</string>
<string name="security_patch_invalid_vendor">Định dạng vendor không hợp lệ</string>
<!-- Add System App -->
<string name="add_system_app_title">Thêm ứng dụng hệ thống</string>
<string name="add_system_app_add">Thêm</string>
<string name="add_system_app_current_list">Danh sách ứng dụng hệ thống hiện tại</string>
<!-- Uninstall confirmation -->
<string name="confirmation_uninstall_title">Xác nhận gỡ cài đặt?</string>
<string name="confirmation_uninstall_message">Bạn có chắc muốn Gỡ cài đặt Tricky Addon không?</string>
<string name="confirmation_uninstall_cancel">Hủy</string>
<string name="confirmation_uninstall_confirm">Xác nhận</string>
</resources>

View File

@@ -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 &amp; 有效密钥</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>

View File

@@ -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 &amp; 有效密鑰</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>

View File

@@ -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 &amp; 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>

View File

@@ -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');

View File

@@ -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())

View File

@@ -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.stderr.emit("data", "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);
}

View File

@@ -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,10 @@ export async function loadTranslations() {
translations = baseTranslations;
}
// Support for rtl language
const isRTL = rtlLang.includes(lang.split('-')[0]);
document.documentElement.setAttribute('dir', isRTL ? 'rtl' : 'ltr');
// Generate language menu
await generateLanguageMenu();
} catch (error) {
@@ -155,10 +170,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();
}
}
});
}

View File

@@ -68,7 +68,7 @@ function checkTrickyStoreVersion() {
const securityPatchElement = document.getElementById('security-patch');
exec(`
TS_version=$(grep "versionCode=" "/data/adb/modules/tricky_store/module.prop" | cut -d'=' -f2)
if grep -q "James" "/data/adb/modules/tricky_store/module.prop"; then
if grep -qE "James|beakthoven" "/data/adb/modules/tricky_store/module.prop"; then
echo 0
elif [ "$TS_version" -ge 158 ]; then
echo 0
@@ -123,7 +123,7 @@ export function linkRedirect(link) {
.then(({ errno }) => {
if (errno !== 0) toast("Failed to open link");
});
},100);
}, 100);
}
// Save configure and preserve ! and ? in target.txt
@@ -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);
});
}
}

View File

@@ -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")) {

View File

@@ -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,10 +67,16 @@
transition: background-color 0.2s ease;
svg {
fill: #fff;
padding-right: 3px;
}
}
[dir="rtl"] .link-icon svg {
padding-right: unset;
padding-left: 3px;
}
#telegram {
background-color: #38A7ED;
}

View File

@@ -240,6 +240,11 @@
position: relative;
}
[dir="rtl"] .app-icon-container {
margin-right: unset;
margin-left: 10px;
}
.loader {
position: absolute;
top: 0;
@@ -273,7 +278,6 @@
display: inline-block;
width: 20px;
height: 20px;
margin-left: auto;
}
.checkbox {

View File

@@ -71,12 +71,17 @@
position: relative;
overflow: hidden;
user-select: none;
svg {
flex-shrink: 0;
margin-right: 10px;
fill: var(--text-secondary);
}
}
.file-item svg {
flex-shrink: 0;
margin-right: 10px;
fill: var(--text-secondary);
[dir="rtl"] .file-item svg {
margin-right: unset;
margin-left: 10px;
}
.file-item span {

View File

@@ -1,41 +1,45 @@
@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);
--bottom-inset: var(--window-inset-bottom, 0px);
/* Background colors */
--bg-primary: var(--background, #F5F5F5);
--bg-secondary: var(--tonalSurface, #fff);
--bg-input: var(--surfaceBright, #F5F5F5);
--bg-primary: var(--background, #fbf8ff);
--bg-secondary: var(--tonalSurface, #f3f0f9);
--bg-input: var(--surfaceBright, #fbf8ff);
/* Text colors */
--text-primary: var(--onSurface, #000);
--text-primary: var(--onSurface, #1b1b21);
--text-secondary: var(--onSurfaceVariant, #757575);
/* Border colors */
--border-color: var(--outlineVariant, #ccc);
--border-color: var(--outlineVariant, #c7c5d0);
/* Button colors */
--btn-primary: var(--primary, #007bff);
--btn-primary: var(--primary, #565992);
--btn-primary-text: var(--onPrimary, #fff);
--btn-uninstall: var(--error, #FF3636);
--btn-uninstall: #f26767;
}
@media (prefers-color-scheme: dark) {
:root {
/* Background colors */
--bg-primary: var(--background, #151515);
--bg-secondary: var(--tonalSurface, #292929);
--bg-input: var(--surfaceBright, #1b1b1b);
--bg-primary: var(--background, #131318);
--bg-secondary: var(--tonalSurface, #1c1c24);
--bg-input: var(--surfaceBright, #2c2c30);
/* Text colors */
--text-primary: var(--onSurface, #fff);
--text-primary: var(--onSurface, #e4e1e9);
--text-secondary: var(--onSurfaceVariant, #C2C2C2);
/* Border colors */
--border-color: var(--outlineVariant, #636363);
--border-color: var(--outlineVariant, #46464f);
/* Button colors */
--btn-primary: var(--primary, #bfc2ff);
--btn-primary-text: var(--onPrimary, #272b60);
}
}
@@ -111,6 +115,11 @@ body {
user-select: none;
}
[dir="rtl"] .close-btn {
right: unset;
left: 12px;
}
.prompt {
position: fixed;
bottom: 0;

View File

@@ -1,7 +1,7 @@
.header {
display: flex;
align-items: center;
justify-content: space-between;
justify-content: flex-start;
position: fixed;
top: 0;
left: 0;
@@ -26,27 +26,46 @@
font-weight: bold;
}
[dir="rtl"] #module-version,
[dir="rtl"] #title {
padding-left: unset;
padding-right: 5px;
}
.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;
background: none;
border: none;
[dir="rtl"] .language-dropdown {
margin-left: unset;
margin-right: auto;
}
.language-icon {
fill: var(--text-primary);
.language-button {
height: 100%;
display: flex;
align-items: center;
background: none;
border: none;
svg {
fill: var(--text-primary);
}
}
.language-menu {
@@ -68,6 +87,12 @@
transition: all 0.2s ease;
}
[dir="rtl"] .language-menu {
right: unset;
left: 5px;
transform-origin: top left;
}
.language-menu.show {
opacity: 1;
transform: translateY(0) scale(1);
@@ -121,10 +146,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 +170,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 +178,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 {

View File

@@ -26,6 +26,11 @@
position: absolute;
}
[dir="rtl"] .search-card {
left: unset;
right: 0;
}
.search-icon {
position: absolute;
padding-top: 5px;
@@ -33,6 +38,11 @@
z-index: 1000;
}
[dir="rtl"] .search-icon {
left: unset;
right: 15px;
}
.search-input {
position: absolute;
border: none;
@@ -65,6 +75,11 @@
height: 100%;
}
[dir="rtl"] .menu {
right: unset;
left: 0;
}
.menu-toggle {
display: none;
}
@@ -113,7 +128,12 @@
user-select: none;
}
#shortcut,
[dir="rtl"] .menu-options {
right: unset;
left: 0;
transform: translateX(-120%);
}
#select-denylist,
#security-patch {
display: none;
@@ -133,7 +153,6 @@
.menu-options li {
padding: 12px 15px;
text-align: left;
}
.menu-options li::after {

View File

@@ -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;
}

View File

@@ -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"
}