Skip to content

Commit 1c11f1a

Browse files
committed
修改
1 parent b247d64 commit 1c11f1a

File tree

1 file changed

+39
-22
lines changed

1 file changed

+39
-22
lines changed

Termux/install-NH

Lines changed: 39 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ function check_dependencies() {
164164
log "INFO" "更新包索引..."
165165
apt update -y &>/dev/null || apt-get -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confnew" dist-upgrade -y &>/dev/null
166166

167-
local required_packages=("proot" "tar" "axel" "wget" "pv")
167+
local required_packages=("proot" "tar" "aria2" "wget" "pv")
168168
local missing_packages=()
169169

170170
# 检查缺失的包
@@ -203,10 +203,10 @@ function get_rootfs() {
203203

204204
log "INFO" "开始下载 rootfs..."
205205
ROOTFS_URL="${BASE_URL}/${IMAGE_NAME}"
206-
if ask "是否使用多线程(axel)" "Y"; then
207-
if command_exists axel; then
208-
log "INFO" "使用 axel 多线程下载: ${ROOTFS_URL}"
209-
axel -n 4 -a "${ROOTFS_URL}" || error_exit "下载失败"
206+
if ask "是否使用多线程(aria2)" "Y"; then
207+
if command_exists aria2; then
208+
log "INFO" "使用 aria2 多线程下载: ${ROOTFS_URL}"
209+
aria2c -x 16 -s 16 -k 1M "${ROOTFS_URL}" || error_exit "下载失败"
210210
else
211211
log "WARN" "未发现axel使用wget下载: ${ROOTFS_URL}"
212212
wget -c "${ROOTFS_URL}" --progress=bar:force 2>&1 | while read -r line; do
@@ -234,33 +234,51 @@ function get_rootfs() {
234234
}
235235

236236
function verify_sha() {
237-
log "INFO" "开始下载rootfs验证文件..."
238-
wget -c "${BASE_URL}/SHA256SUMS"
239-
if [ -f "SHA256SUMS"]; then
240-
# 从SHA256SUMS中提取该文件的哈希值
241-
EXPECTED_HASH=$(grep "$IMAGE_NAME" SHA256SUMS | awk '{print $1}')
242-
# 计算实际哈希值
243-
log "INFO" "计算 SHA-512 哈希值..."
237+
log "INFO" "开始下载 rootfs 验证文件..."
238+
wget -q -c "${BASE_URL}/SHA256SUMS" -O SHA256SUMS
239+
240+
if [ -f "SHA256SUMS" ]; then
241+
FILE_NAME=$(basename "$IMAGE_NAME")
242+
log "INFO" "提取文件名: $FILE_NAME"
243+
244+
# 构造匹配模式(移除日期)
245+
# 例如:kali-nethunter-rootfs-minimal-arm64.tar.xz → kali-nethunter-*-rootfs-minimal-arm64.tar.xz
246+
MATCH_PATTERN=$(echo "$FILE_NAME" | sed 's/kali-nethunter-/kali-nethunter-[0-9.]*-/')
247+
248+
# 提取哈希值(用 grep 正则匹配)
249+
EXPECTED_HASH=$(grep -E " ${MATCH_PATTERN}$" SHA256SUMS | awk '{print $1}')
250+
251+
if [ -z "$EXPECTED_HASH" ]; then
252+
error_exit "无法从 SHA256SUMS 中找到对应的哈希值 (模式: $MATCH_PATTERN)"
253+
fi
254+
255+
log "INFO" "计算 SHA-256 哈希值..."
244256
ACTUAL_HASH=$(sha256sum "$IMAGE_NAME" | awk '{print $1}')
257+
258+
printf "预期: %s\n" "$EXPECTED_HASH"
259+
printf "真实: %s\n" "$ACTUAL_HASH"
260+
245261
if [ "$EXPECTED_HASH" = "$ACTUAL_HASH" ]; then
246262
log "SUCCESS" "Rootfs SHA-256 哈希验证通过"
247263
return 0
248264
else
249-
rm -f "$IMAGE_NAME"
250265
error_exit "Rootfs 文件已损坏或版本不匹配,请重新下载"
251266
fi
252267
else
253-
log "WARN" "未找到验证文件,跳过验证"
268+
log "WARN" "未找到验证文件跳过验证"
254269
return 0
255270
fi
256271
}
257272

273+
274+
258275
function extract_rootfs() {
259276
if [ -z "$KEEP_CHROOT" ]; then
260277
log "INFO" "开始解压 rootfs..."
261278

262279
# 显示解压进度
263-
pv "$IMAGE_NAME" | proot --link2symlink tar -xf - 2>/dev/null || {
280+
pv "$IMAGE_NAME" | proot --link2symlink tar -xJf - \
281+
--no-same-owner --no-same-permissions --exclude='dev/*' || {
264282
error_exit "解压失败,请检查镜像文件是否完整"
265283
}
266284

@@ -352,12 +370,9 @@ function create_kex_launcher() {
352370
cat > $KEX_LAUNCHER <<- EOF
353371
#!/bin/bash
354372
355-
# 清理锁文件与 VNC 缓存
356-
rm -f $CHROOT/tmp/.X*-lock
357-
rm -rf $CHROOT/home/kali/.vnc/*
358-
359-
360373
function start-kex() {
374+
export FONTCONFIG_PATH=/etc/fonts
375+
export FONTCONFIG_FILE=/etc/fonts/fonts.conf
361376
if [ ! -f ~/.vnc/passwd ]; then
362377
passwd-kex
363378
fi
@@ -373,6 +388,8 @@ function start-kex() {
373388
}
374389
375390
function stop-kex() {
391+
rm -f /tmp/.X*-lock
392+
rm -f /tmp/.X11-unix/X*
376393
vncserver -kill :1 | sed s/"Xtigervnc"/"NetHunter KeX"/
377394
vncserver -kill :2 | sed s/"Xtigervnc"/"NetHunter KeX"/
378395
return $?
@@ -490,7 +507,7 @@ function update_sources_list() {
490507
log "SUCCESS" "Kali 软件源已更新为清华镜像"
491508
if [ "$wimg" = "nano" ] || [ "$wimg" = "minimal" ]; then
492509
log "INFO" "当前非完整版,正在安装kex服务"
493-
nh -r apt update && nh -r apt install -y tightvncserver kali-desktop-xfce
510+
nh -r apt update && nh -r apt install -y tightvncserver kali-desktop-xfce tigervnc-standalone-server x11-utils x11-xserver-utils xfonts-base
494511
fi
495512
else
496513
log "WARN" "未找到 Kali sources.list 文件"
@@ -512,7 +529,7 @@ function print_banner() {
512529
printf "${blue}## ##${reset}\n"
513530
printf "${blue}#### ############# NetHunter ####################${reset}\n"
514531
printf "${blue}#### ############ (网络猎人) ####################${reset}\n"
515-
printf "${blue}脚本优化: 东经雨 5.0${reset}\n"
532+
printf "${blue}脚本优化: 东经雨 5.8${reset}\n"
516533
printf "${yellow}技术支持: ChatGPT, Claude, DeepSeek${reset}\n"
517534
printf "使用则代表同意协议:\n"
518535
printf "作者已经脚本参与者不承担因脚本引发的任何法律问题,均由使用者自行承担\n\n"

0 commit comments

Comments
 (0)