You've already forked Tricky-Addon-Update-Target-List
mirror of
https://github.com/KOWX712/Tricky-Addon-Update-Target-List.git
synced 2025-09-06 06:37:09 +00:00
Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e192fcc916 | ||
|
|
7a2c87b365 | ||
|
|
a1f4d8fc72 | ||
|
|
7f7c124b25 | ||
|
|
90696c5c5d | ||
|
|
9cbb73bab0 | ||
|
|
d9eb97cb3c | ||
|
|
e848da327b | ||
|
|
67581ae941 | ||
|
|
91dea027ce |
@@ -9,7 +9,13 @@ GitHub release: [Tricky Addon: Update Target List](https://github.com/KOWX712/Tr
|
|||||||
|
|
||||||
Telegram channel: [KOW's Little World](https://t.me/kowchannel)
|
Telegram channel: [KOW's Little World](https://t.me/kowchannel)
|
||||||
|
|
||||||
|
Starting from v2.4, WebUI will take longer time to load due to reading app name from every base.apk. The more apps installed, the longer time it takes to load the WebUI.
|
||||||
|
|
||||||
## Changelog
|
## Changelog
|
||||||
|
### v2.5
|
||||||
|
- Remove kb prompt on installation, moved into WebUI
|
||||||
|
- Restore to AOSP keybox during uninstallation
|
||||||
|
|
||||||
### v2.4
|
### v2.4
|
||||||
- Added aapt binary for app name display
|
- Added aapt binary for app name display
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
- Recommend to run with MT manager
|
- Recommend to run with MT manager
|
||||||
|
|
||||||
## Changelog
|
## Changelog
|
||||||
### v2.1, v2.2, v2.3, v2.4
|
### v2.1, v2.2, v2.3, v2.4, v2.5
|
||||||
- Remain same with v2.0
|
- Remain same with v2.0
|
||||||
|
|
||||||
### v2.0
|
### v2.0
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
# Tricky Addon Lite: Update Target List Script v2.4
|
# Tricky Addon Lite: Update Target List Script v2.5
|
||||||
# GitHub Repository: https://github.com/KOWX712/Tricky-Addon-Update-Target-List/blob/master/lite-script_only/README.md
|
# GitHub Repository: https://github.com/KOWX712/Tricky-Addon-Update-Target-List/blob/master/lite-script_only/README.md
|
||||||
# Telegram channel: https://t.me/kowchannel
|
# Telegram channel: https://t.me/kowchannel
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
MODPATH=${0%/*}
|
MODPATH=${0%/*}
|
||||||
OUTPUT="$MODPATH/exclude-list"
|
OUTPUT="$MODPATH/exclude-list"
|
||||||
|
KBOUTPUT="$MODPATH/.extra"
|
||||||
|
|
||||||
. $MODPATH/util_func.sh
|
. $MODPATH/util_func.sh
|
||||||
|
|
||||||
@@ -20,5 +21,12 @@ awk -F'"' '{print $4}' >> "$OUTPUT"
|
|||||||
|
|
||||||
if [ ! -s "$OUTPUT" ]; then
|
if [ ! -s "$OUTPUT" ]; then
|
||||||
echo "Error: Failed to fetch data." > "$OUTPUT"
|
echo "Error: Failed to fetch data." > "$OUTPUT"
|
||||||
|
rm -f "$KBOUTPUT"
|
||||||
exit 1
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
wget --no-check-certificate -qO "$KBOUTPUT" "https://raw.githubusercontent.com/KOWX712/Tricky-Addon-Update-Target-List/master/.extra"
|
||||||
|
|
||||||
|
if [ ! -s "$KBOUTPUT" ]; then
|
||||||
|
rm -f "$KBOUTPUT"
|
||||||
fi
|
fi
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
PACKAGE_NAME="io.github.a13e300.ksuwebui"
|
PACKAGE_NAME="io.github.a13e300.ksuwebui"
|
||||||
MODID="set-id"
|
MODID="set-id"
|
||||||
BBPATH="/data/adb/modules/busybox-ndk/system/*/busybox \
|
BBPATH="/data/adb/modules/busybox-ndk/system/*/busybox \
|
||||||
/data/adb/magisk/busybox \
|
/data/adb/magisk/busybox \
|
||||||
/data/adb/ksu/bin/busybox \
|
/data/adb/ksu/bin/busybox \
|
||||||
/data/adb/ap/bin/busybox"
|
/data/adb/ap/bin/busybox"
|
||||||
|
|
||||||
find_busybox() {
|
find_busybox() {
|
||||||
for path in $BBPATH; do
|
for path in $BBPATH; do
|
||||||
|
|||||||
@@ -37,14 +37,6 @@ ui_print "- Creating config directory..."
|
|||||||
find_config
|
find_config
|
||||||
migrate_old_boot_hash
|
migrate_old_boot_hash
|
||||||
|
|
||||||
ui_print "*********************************************"
|
|
||||||
ui_print "- Do you want to replace tricky store keybox? (AOSP, no strong)"
|
|
||||||
ui_print " VOL [+]: YES"
|
|
||||||
ui_print " VOL [-]: NO"
|
|
||||||
ui_print "*********************************************"
|
|
||||||
key_check
|
|
||||||
kb_operation
|
|
||||||
|
|
||||||
rm -f "$MODPATH/install_func.sh"
|
rm -f "$MODPATH/install_func.sh"
|
||||||
|
|
||||||
ui_print "- Installation completed successfully! "
|
ui_print "- Installation completed successfully! "
|
||||||
|
|||||||
@@ -2,6 +2,9 @@ initialize() {
|
|||||||
if [ -f "$SCRIPT_DIR/UpdateTargetList.sh" ]; then
|
if [ -f "$SCRIPT_DIR/UpdateTargetList.sh" ]; then
|
||||||
rm -f "$SCRIPT_DIR/UpdateTargetList.sh"
|
rm -f "$SCRIPT_DIR/UpdateTargetList.sh"
|
||||||
fi
|
fi
|
||||||
|
if [ -f "$CONFIG_DIR/skipwebui" ]; then
|
||||||
|
rm -f "$CONFIG_DIR/skipwebui"
|
||||||
|
fi
|
||||||
cp "$MODPATH/module.prop" "$COMPATH/module.prop.orig"
|
cp "$MODPATH/module.prop" "$COMPATH/module.prop.orig"
|
||||||
mv "$COMPATH/UpdateTargetList.sh" "$SCRIPT_DIR/UpdateTargetList.sh"
|
mv "$COMPATH/UpdateTargetList.sh" "$SCRIPT_DIR/UpdateTargetList.sh"
|
||||||
|
|
||||||
@@ -20,7 +23,7 @@ initialize() {
|
|||||||
|
|
||||||
set_perm $COMPATH/aapt 0 2000 0755
|
set_perm $COMPATH/aapt 0 2000 0755
|
||||||
set_perm $SCRIPT_DIR/UpdateTargetList.sh 0 2000 0755
|
set_perm $SCRIPT_DIR/UpdateTargetList.sh 0 2000 0755
|
||||||
set_perm $COMPATH/get_exclude-list.sh 0 2000 0755
|
set_perm $COMPATH/get_extra.sh 0 2000 0755
|
||||||
set_perm $COMPATH/get_WebUI.sh 0 2000 0755
|
set_perm $COMPATH/get_WebUI.sh 0 2000 0755
|
||||||
|
|
||||||
if [ "$ACTION" = "false" ]; then
|
if [ "$ACTION" = "false" ]; then
|
||||||
@@ -90,46 +93,4 @@ migrate_old_boot_hash() {
|
|||||||
echo -e "\n$hash_value" >> "/data/adb/boot_hash"
|
echo -e "\n$hash_value" >> "/data/adb/boot_hash"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
|
||||||
|
|
||||||
key_check() {
|
|
||||||
while true; do
|
|
||||||
key_check=$(/system/bin/getevent -qlc 1)
|
|
||||||
key_event=$(echo "$key_check" | awk '{ print $3 }' | grep 'KEY_')
|
|
||||||
key_status=$(echo "$key_check" | awk '{ print $4 }')
|
|
||||||
if [[ "$key_event" == *"KEY_"* && "$key_status" == "DOWN" ]]; then
|
|
||||||
keycheck="$key_event"
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
while true; do
|
|
||||||
key_check=$(/system/bin/getevent -qlc 1)
|
|
||||||
key_event=$(echo "$key_check" | awk '{ print $3 }' | grep 'KEY_')
|
|
||||||
key_status=$(echo "$key_check" | awk '{ print $4 }')
|
|
||||||
if [[ "$key_event" == *"KEY_"* && "$key_status" == "UP" ]]; then
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
kb_operation() {
|
|
||||||
if [[ "$keycheck" == "KEY_VOLUMEUP" ]]; then
|
|
||||||
ui_print "- Backing up original keybox..."
|
|
||||||
ui_print "- Replacing keybox..."
|
|
||||||
ui_print "*********************************************"
|
|
||||||
|
|
||||||
if [ -f "$ORG_DIR/common/origkeybox" ]; then
|
|
||||||
mv "$ORG_DIR/common/origkeybox" "$COMPATH/origkeybox"
|
|
||||||
else
|
|
||||||
mv "$SCRIPT_DIR/keybox.xml" "$COMPATH/origkeybox"
|
|
||||||
fi
|
|
||||||
|
|
||||||
mv "$kb" "$SCRIPT_DIR/keybox.xml"
|
|
||||||
else
|
|
||||||
if [ -f "$ORG_DIR/common/origkeybox" ]; then
|
|
||||||
mv "$ORG_DIR/common/origkeybox" "$COMPATH/origkeybox"
|
|
||||||
fi
|
|
||||||
|
|
||||||
rm -f "$kb"
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
id=TA_utl
|
id=TA_utl
|
||||||
name=Tricky Addon - Update Target List
|
name=Tricky Addon - Update Target List
|
||||||
version=v2.4
|
version=v2.5
|
||||||
versionCode=240
|
versionCode=250
|
||||||
author=KOWX712
|
author=KOWX712
|
||||||
description=A WebUI to conifgure tricky store target.txt
|
description=A WebUI to conifgure tricky store target.txt
|
||||||
updateJson=https://raw.githubusercontent.com/KOWX712/Tricky-Addon-Update-Target-List/master/update.json
|
updateJson=https://raw.githubusercontent.com/KOWX712/Tricky-Addon-Update-Target-List/master/update.json
|
||||||
|
|||||||
@@ -6,11 +6,8 @@ if [ -f "/storage/emulated/0/stop-tspa-auto-target" ]; then
|
|||||||
rm -f "/storage/emulated/0/stop-tspa-auto-target"
|
rm -f "/storage/emulated/0/stop-tspa-auto-target"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Remove residue and restore original keybox.
|
# Remove residue and restore aosp keybox.
|
||||||
rm -rf "$SCRIPT_DIR/target_list_config"
|
rm -rf "$SCRIPT_DIR/target_list_config"
|
||||||
rm -f "$SCRIPT_DIR/UpdateTargetList.sh"
|
rm -f "$SCRIPT_DIR/UpdateTargetList.sh"
|
||||||
rm -f "/data/adb/boot_hash"
|
rm -f "/data/adb/boot_hash"
|
||||||
if [ -f "$MODPATH/common/origkeybox" ]; then
|
xxd -r -p "$MODPATH/common/.default" | base64 -d > "$SCRIPT_DIR/keybox.xml"
|
||||||
rm -f "$SCRIPT_DIR/keybox.xml"
|
|
||||||
mv "$MODPATH/common/origkeybox" "$SCRIPT_DIR/keybox.xml"
|
|
||||||
fi
|
|
||||||
|
|||||||
@@ -51,7 +51,7 @@
|
|||||||
<li>Deselect Unnecessary
|
<li>Deselect Unnecessary
|
||||||
<ul>
|
<ul>
|
||||||
<li>Unnecessary category: Xposed module, root manager, root-related apps, and general apps
|
<li>Unnecessary category: Xposed module, root manager, root-related apps, and general apps
|
||||||
that never check bootloader status.</li>
|
that never check bootloader status. This option requrie Internet connection.</li>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Contribute to <a
|
<li>Contribute to <a
|
||||||
href="https://raw.githubusercontent.com/KOWX712/Tricky-Addon-Update-Target-List/master/more-excldue.json"
|
href="https://raw.githubusercontent.com/KOWX712/Tricky-Addon-Update-Target-List/master/more-excldue.json"
|
||||||
@@ -64,6 +64,15 @@
|
|||||||
<li><br></li>
|
<li><br></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
<li>Set AOSP & Valid Keybox
|
||||||
|
<ul>
|
||||||
|
<li>Replace tricky store keybox.xml<br><strong>AOSP keybox:</strong> Device
|
||||||
|
Integrity.<br><strong>Valid keybox:</strong> Strong Integrity, fallback to Basic
|
||||||
|
Integrity if revoked.<br>AOSP keybox will be replaced if there's no more valid keybox.
|
||||||
|
Valid keybox option require Internet connection.</li>
|
||||||
|
<li><br></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -85,7 +94,9 @@
|
|||||||
<li id="select-all">Select All</li>
|
<li id="select-all">Select All</li>
|
||||||
<li id="deselect-all">Deselect All</li>
|
<li id="deselect-all">Deselect All</li>
|
||||||
<li id="select-denylist">Select From DenyList</li>
|
<li id="select-denylist">Select From DenyList</li>
|
||||||
<li id="deselect-xposed">Deselect Unnecessary</li>
|
<li id="deselect-unnecessary">Deselect Unnecessary</li>
|
||||||
|
<li id="aospkb">Set AOSP Keybox</li>
|
||||||
|
<li id="extrakb">Set Valid Keybox</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -96,6 +96,7 @@ async function fetchAppList() {
|
|||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("Failed to fetch or render app list with names:", error);
|
console.error("Failed to fetch or render app list with names:", error);
|
||||||
}
|
}
|
||||||
|
|
||||||
floatingBtn.style.transform = "translateY(-100px)";
|
floatingBtn.style.transform = "translateY(-100px)";
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -112,44 +113,62 @@ async function refreshAppList() {
|
|||||||
await new Promise(resolve => setTimeout(resolve, 500));
|
await new Promise(resolve => setTimeout(resolve, 500));
|
||||||
window.scrollTo(0, 0);
|
window.scrollTo(0, 0);
|
||||||
if (noConnection.style.display === "flex") {
|
if (noConnection.style.display === "flex") {
|
||||||
await runXposedScript();
|
await runExtraScript();
|
||||||
}
|
}
|
||||||
await fetchAppList();[]
|
await fetchAppList();[]
|
||||||
loadingIndicator.style.display = 'none';
|
loadingIndicator.style.display = 'none';
|
||||||
isRefreshing = false;
|
isRefreshing = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Function to run the Xposed script
|
// Function to select all visible apps
|
||||||
async function runXposedScript() {
|
function selectAllApps() {
|
||||||
|
document.querySelectorAll(".card").forEach(card => {
|
||||||
|
if (card.style.display !== "none") {
|
||||||
|
card.querySelector(".checkbox").checked = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Function to deselect all visible apps
|
||||||
|
function deselectAllApps() {
|
||||||
|
document.querySelectorAll(".card").forEach(card => {
|
||||||
|
if (card.style.display !== "none") {
|
||||||
|
card.querySelector(".checkbox").checked = false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Function to run the extra script
|
||||||
|
async function runExtraScript() {
|
||||||
try {
|
try {
|
||||||
const scriptPath = `${basePath}get_exclude-list.sh`;
|
const scriptPath = `${basePath}get_extra.sh`;
|
||||||
await execCommand(scriptPath);
|
await execCommand(scriptPath);
|
||||||
console.log("Xposed script executed successfully.");
|
console.log("Extra script executed successfully.");
|
||||||
noConnection.style.display = "none";
|
noConnection.style.display = "none";
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("Failed to execute Xposed script:", error);
|
console.error("Failed to execute Extra script:", error);
|
||||||
showPrompt("Please check your Internet connection", false);
|
showPrompt("Please check your Internet connection", false);
|
||||||
noConnection.style.display = "flex";
|
noConnection.style.display = "flex";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Function to read the Xposed list and uncheck corresponding apps
|
// Function to read the exclude list and uncheck corresponding apps
|
||||||
async function deselectXposedApps() {
|
async function deselectUnnecessaryApps() {
|
||||||
try {
|
try {
|
||||||
const result = await execCommand(`cat ${basePath}exclude-list`);
|
const result = await execCommand(`cat ${basePath}exclude-list`);
|
||||||
const xposedApps = result.split("\n").map(app => app.trim()).filter(Boolean);
|
const UnnecessaryApps = result.split("\n").map(app => app.trim()).filter(Boolean);
|
||||||
const apps = document.querySelectorAll(".card");
|
const apps = document.querySelectorAll(".card");
|
||||||
apps.forEach(app => {
|
apps.forEach(app => {
|
||||||
const contentElement = app.querySelector(".content");
|
const contentElement = app.querySelector(".content");
|
||||||
const packageName = contentElement.getAttribute("data-package");
|
const packageName = contentElement.getAttribute("data-package");
|
||||||
const checkbox = app.querySelector(".checkbox");
|
const checkbox = app.querySelector(".checkbox");
|
||||||
if (xposedApps.includes(packageName)) {
|
if (UnnecessaryApps.includes(packageName)) {
|
||||||
checkbox.checked = false; // Uncheck if found in Xposed list
|
checkbox.checked = false; // Uncheck if found in more-exclude list
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
console.log("Xposed apps deselected successfully.");
|
console.log("unnecessary apps deselected successfully.");
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("Failed to deselect Xposed apps:", error);
|
console.error("Failed to deselect unnecessary apps:", error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -185,6 +204,7 @@ async function selectDenylistApps() {
|
|||||||
`);
|
`);
|
||||||
const denylistApps = result.split("\n").map(app => app.trim()).filter(Boolean);
|
const denylistApps = result.split("\n").map(app => app.trim()).filter(Boolean);
|
||||||
const apps = document.querySelectorAll(".card");
|
const apps = document.querySelectorAll(".card");
|
||||||
|
await deselectAllApps();
|
||||||
apps.forEach(app => {
|
apps.forEach(app => {
|
||||||
const contentElement = app.querySelector(".content");
|
const contentElement = app.querySelector(".content");
|
||||||
const packageName = contentElement.getAttribute("data-package");
|
const packageName = contentElement.getAttribute("data-package");
|
||||||
@@ -199,22 +219,37 @@ async function selectDenylistApps() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Function to select all visible apps
|
// Function to replace aosp kb
|
||||||
function selectAllApps() {
|
async function aospkb() {
|
||||||
document.querySelectorAll(".card").forEach(card => {
|
try {
|
||||||
if (card.style.display !== "none") {
|
const sourcePath = `${basePath}.default`;
|
||||||
card.querySelector(".checkbox").checked = true;
|
const destinationPath = "/data/adb/tricky_store/keybox.xml";
|
||||||
}
|
await execCommand(`xxd -r -p ${sourcePath} | base64 -d > ${destinationPath}`);
|
||||||
});
|
console.log("AOSP keybox copied successfully.");
|
||||||
|
showPrompt("AOSP keybox set successfully.");
|
||||||
|
} catch (error) {
|
||||||
|
console.error("Failed to copy AOSP keybox:", error);
|
||||||
|
showPrompt("Failed to update keybox.", false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Function to deselect all visible apps
|
// Function to replace valid kb
|
||||||
function deselectAllApps() {
|
async function extrakb() {
|
||||||
document.querySelectorAll(".card").forEach(card => {
|
const sourcePath = `${basePath}.extra`;
|
||||||
if (card.style.display !== "none") {
|
const destinationPath = "/data/adb/tricky_store/keybox.xml";
|
||||||
card.querySelector(".checkbox").checked = false;
|
try {
|
||||||
|
const fileExists = await execCommand(`[ -f ${sourcePath} ] && echo "exists"`);
|
||||||
|
if (fileExists.trim() !== "exists") {
|
||||||
|
throw new Error(".extra file not found");
|
||||||
}
|
}
|
||||||
});
|
await execCommand(`xxd -r -p ${sourcePath} | base64 -d > ${destinationPath}`);
|
||||||
|
console.log("Valid keybox copied successfully.");
|
||||||
|
showPrompt("Valid keybox set successfully.");
|
||||||
|
} catch (error) {
|
||||||
|
console.error("Failed to copy valid keybox:", error);
|
||||||
|
await aospkb();
|
||||||
|
showPrompt("No valid keybox found, replaced with AOSP keybox.", false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Function to show the prompt with a success or error message
|
// Function to show the prompt with a success or error message
|
||||||
@@ -265,7 +300,7 @@ function setupMenuToggle() {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
const closeMenuItems = ['refresh', 'select-all', 'deselect-all', 'select-denylist', 'deselect-xposed'];
|
const closeMenuItems = ['refresh', 'select-all', 'deselect-all', 'select-denylist', 'deselect-unnecessary', 'aospkb', 'extrakb'];
|
||||||
closeMenuItems.forEach(id => {
|
closeMenuItems.forEach(id => {
|
||||||
const item = document.getElementById(id);
|
const item = document.getElementById(id);
|
||||||
if (item) {
|
if (item) {
|
||||||
@@ -389,10 +424,12 @@ document.addEventListener('DOMContentLoaded', async () => {
|
|||||||
document.getElementById("select-all").addEventListener("click", selectAllApps);
|
document.getElementById("select-all").addEventListener("click", selectAllApps);
|
||||||
document.getElementById("deselect-all").addEventListener("click", deselectAllApps);
|
document.getElementById("deselect-all").addEventListener("click", deselectAllApps);
|
||||||
document.getElementById("select-denylist").addEventListener("click", selectDenylistApps);
|
document.getElementById("select-denylist").addEventListener("click", selectDenylistApps);
|
||||||
document.getElementById("deselect-xposed").addEventListener("click", deselectXposedApps);
|
document.getElementById("deselect-unnecessary").addEventListener("click", deselectUnnecessaryApps);
|
||||||
|
document.getElementById("aospkb").addEventListener("click", aospkb);
|
||||||
|
document.getElementById("extrakb").addEventListener("click", extrakb);
|
||||||
await fetchAppList();
|
await fetchAppList();
|
||||||
checkMagisk();
|
checkMagisk();
|
||||||
runXposedScript();
|
runExtraScript();
|
||||||
loadingIndicator.style.display = "none";
|
loadingIndicator.style.display = "none";
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ body {
|
|||||||
.help-menu {
|
.help-menu {
|
||||||
position: relative;
|
position: relative;
|
||||||
width: 75vw;
|
width: 75vw;
|
||||||
max-width: 600px;
|
max-width: 800px;
|
||||||
background-color: white;
|
background-color: white;
|
||||||
padding: 0 10px;
|
padding: 0 10px;
|
||||||
border-radius: 15px;
|
border-radius: 15px;
|
||||||
@@ -110,7 +110,7 @@ body {
|
|||||||
|
|
||||||
.help-content ul li {
|
.help-content ul li {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
font-size: 17px;
|
font-size: 18px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.help-content ul ul li {
|
.help-content ul ul li {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"versionCode": 240,
|
"versionCode": 250,
|
||||||
"version": "v2.4",
|
"version": "v2.5",
|
||||||
"zipUrl": "https://github.com/KOWX712/Tricky-Addon-Update-Target-List/releases/download/v2.3/TrickyAddonModule-v2.3.zip",
|
"zipUrl": "https://github.com/KOWX712/Tricky-Addon-Update-Target-List/releases/download/v2.5/TrickyAddonModule-v2.5.zip",
|
||||||
"changelog": "https://raw.githubusercontent.com/KOWX712/Tricky-Addon-Update-Target-List/refs/heads/master/changelog.md"
|
"changelog": "https://raw.githubusercontent.com/KOWX712/Tricky-Addon-Update-Target-List/master/changelog.md"
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user