Skip to content

Commit 3a286c6

Browse files
committed
feat(install): 支持模块内安装配套应用并增加安装来源选择
1 parent 36226f5 commit 3a286c6

2 files changed

Lines changed: 49 additions & 13 deletions

File tree

src/module/NetProxy.apk

3.96 MB
Binary file not shown.

src/module/customize.sh

Lines changed: 49 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,9 @@ readonly EXECUTABLE_FILES="
4848
# 打印带分隔线的标题
4949
print_title() {
5050
ui_print ""
51-
ui_print "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
51+
ui_print "━━━━━━━━━━━━━━━━━━━━━━━━━"
5252
ui_print " $1"
53-
ui_print "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
53+
ui_print "━━━━━━━━━━━━━━━━━━━━━━━━━"
5454
}
5555

5656
# 打印步骤
@@ -247,24 +247,19 @@ set_permissions() {
247247

248248
# 询问用户是否安装配套应用
249249
ask_install_app() {
250+
print_title "是否安装 NetProxy 配套应用?"
250251
ui_print ""
251-
ui_print "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
252-
ui_print " 是否安装 NetProxy 配套应用?"
253-
ui_print "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
254-
ui_print ""
255-
ui_print " [音量+] 安装 (打开 Google Play)"
252+
ui_print " [音量+] 安装 (默认)"
256253
ui_print " [音量-] 跳过"
257254
ui_print ""
258255

259256
local timeout=10
260-
local choice=""
257+
local choice="install"
261258

262259
while [ $timeout -gt 0 ]; do
263-
# 读取音量键
264260
local key=$(getevent -lqc 1 2> /dev/null | grep -E "KEY_VOLUME(UP|DOWN)" | head -1)
265261

266262
if echo "$key" | grep -q "VOLUMEUP"; then
267-
choice="install"
268263
break
269264
elif echo "$key" | grep -q "VOLUMEDOWN"; then
270265
choice="skip"
@@ -275,14 +270,55 @@ ask_install_app() {
275270
timeout=$((timeout - 1))
276271
done
277272

278-
if [ "$choice" = "install" ]; then
273+
if [ "$choice" = "skip" ]; then
274+
print_step "已跳过安装"
275+
rm -f "$MODPATH/NetProxy.apk"
276+
return 0
277+
fi
278+
279+
# 二次选择:模块内 or Google Play
280+
sleep 1
281+
282+
print_title "选择安装来源"
283+
ui_print ""
284+
ui_print " [音量+] 模块内安装 (默认,含广告)"
285+
ui_print " [音量-] Google Play (无广告)"
286+
ui_print ""
287+
288+
timeout=10
289+
local source="module"
290+
291+
while [ $timeout -gt 0 ]; do
292+
local key=$(getevent -lqc 1 2> /dev/null | grep -E "KEY_VOLUME(UP|DOWN)" | head -1)
293+
294+
if echo "$key" | grep -q "VOLUMEUP"; then
295+
break
296+
elif echo "$key" | grep -q "VOLUMEDOWN"; then
297+
source="play"
298+
break
299+
fi
300+
301+
sleep 1
302+
timeout=$((timeout - 1))
303+
done
304+
305+
if [ "$source" = "module" ] && [ -f "$MODPATH/NetProxy.apk" ]; then
306+
print_step "正在安装模块内应用..."
307+
pm install -r "$MODPATH/NetProxy.apk" > /dev/null 2>&1
308+
if [ $? -eq 0 ]; then
309+
print_ok "应用安装成功"
310+
else
311+
print_warn "应用安装失败,请手动安装"
312+
fi
313+
else
279314
print_step "正在打开 Google Play..."
280315
am start -a android.intent.action.VIEW -d "https://play.google.com/store/apps/details?id=com.fanjv.netproxy" > /dev/null 2>&1
281316
print_ok "已打开 Google Play"
282-
else
283-
print_step "已跳过安装"
284317
fi
285318

319+
# 清理安装包以减小模块体积
320+
rm -f "$MODPATH/NetProxy.apk"
321+
286322
return 0
287323
}
288324

0 commit comments

Comments
 (0)