Skip to content

Commit b12ca92

Browse files
committed
修改
1 parent 017df03 commit b12ca92

File tree

1 file changed

+32
-43
lines changed

1 file changed

+32
-43
lines changed

Termux/install-NH

Lines changed: 32 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,10 @@
11
#!/data/data/com.termux/files/usr/bin/bash -e
22

3-
VERSION=2024091801
3+
VERSION=20250525
44
BASE_URL=https://kali.download/nethunter-images/current/rootfs
55
USERNAME=kali
66
# https://gitlab.com/kalilinux/nethunter/build-scripts/kali-nethunter-rootless/raw/main/install-nethunter-termux 原版连链接
77

8-
# SHA512 哈希值
9-
declare -A SHA512_HASHES=(
10-
["full_arm64"]="1fe0305803dbac57111e04cbc36b1e2d7365a293171474b83616c9df91cf89a05d1d0313488974f3cd2c8131e5ecdc25d5230091743c458bbac41ca109d8b12f"
11-
["minimal_arm64"]="061502bb2c28b4f1202eebea70d3bbe2f5c61e9f43fa7ab16080dbcfdf41f9363b2a00e29598502cdc8f5d15f7b116e336f043b1924aaabc4b08841f281601f8"
12-
["nano_arm64"]="6a244b108aec3d612e50e03d9af4c503ce636f7d5bb752f0f7a893a21e5384657da4579cfb1a8ef6902914e6f46d4720c6f385c00a5bc950803c7f5d141133db"
13-
# 可以添加更多架构的哈希值
14-
)
15-
168
log() {
179
current_time=$(date +'%H:%M:%S')
1810
case "$1" in
@@ -47,7 +39,9 @@ function unsupported_arch() {
4739
}
4840

4941
function ask() {
42+
# http://djm.me/ask
5043
while true; do
44+
5145
if [ "${2:-}" = "Y" ]; then
5246
prompt="Y/n"
5347
default=Y
@@ -59,28 +53,28 @@ function ask() {
5953
default=
6054
fi
6155

62-
printf "${light_cyan}[?] "
56+
# Ask the question
57+
printf "${light_cyan}\n[?] "
6358
read -p "$1 [$prompt] " REPLY
6459

60+
# Default?
6561
if [ -z "$REPLY" ]; then
6662
REPLY=$default
6763
fi
6864

6965
printf "${reset}"
7066

67+
# Check if the reply is valid
7168
case "$REPLY" in
7269
Y*|y*) return 0 ;;
7370
N*|n*) return 1 ;;
74-
*) log "WARN" "请输入 y 或 n" ;;
7571
esac
7672
done
7773
}
7874

7975
function get_arch() {
8076
log "INFO" "检查设备架构..."
81-
82-
local cpu_abi=$(getprop ro.product.cpu.abi)
83-
case "$cpu_abi" in
77+
case $(getprop ro.product.cpu.abi) in
8478
arm64-v8a)
8579
SYS_ARCH=arm64
8680
log "INFO" "检测到架构: ARM64"
@@ -101,10 +95,10 @@ function set_strings() {
10195

10296
if [[ ${SYS_ARCH} == "arm64" ]]; then
10397
menu_options=("full" "minimal" "nano")
104-
descriptions=("NetHunter ARM64 (完整版 - 包含所有工具)" "NetHunter ARM64 (精简版 - 基本工具)" "NetHunter ARM64 (纳米版 - 最小安装)")
98+
descriptions=("NetHunter ARM64 (完整版 - 2.1 GiB)" "NetHunter ARM64 (精简版 - 131.6 MiB)" "NetHunter ARM64 (纳米版 - 185.2 MiB)")
10599
elif [[ ${SYS_ARCH} == "armhf" ]]; then
106100
menu_options=("full" "minimal" "nano")
107-
descriptions=("NetHunter ARMhf (完整版 - 包含所有工具)" "NetHunter ARMhf (精简版 - 基本工具)" "NetHunter ARMhf (纳米版 - 最小安装)")
101+
descriptions=("NetHunter ARMhf (完整版 - 2.0 GiB)" "NetHunter ARMhf (精简版 - 122.2 MiB)" "NetHunter ARMhf (纳米版 - 174.2 MiB)")
108102
fi
109103

110104
echo
@@ -240,25 +234,24 @@ function get_rootfs() {
240234
}
241235

242236
function verify_sha() {
243-
log "INFO" "验证 rootfs 完整性..."
244-
245-
local hash_key="${wimg}_${SYS_ARCH}"
246-
local expected_hash="${SHA512_HASHES[$hash_key]}"
247-
248-
if [ -z "$expected_hash" ]; then
249-
log "WARN" "未找到 $hash_key 的预期哈希值,跳过验证"
250-
return 0
251-
fi
252-
253-
log "INFO" "计算 SHA-512 哈希值..."
254-
local actual_hash=$(sha512sum "$IMAGE_NAME" | awk '{print $1}')
255-
256-
if [ "$expected_hash" = "$actual_hash" ]; then
257-
log "SUCCESS" "Rootfs SHA-512 哈希验证通过"
258-
return 0
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 哈希值..."
244+
ACTUAL_HASH=$(sha256sum "$IMAGE_NAME" | awk '{print $1}')
245+
if [ "$EXPECTED_HASH" = "$ACTUAL_HASH" ]; then
246+
log "SUCCESS" "Rootfs SHA-256 哈希验证通过"
247+
return 0
248+
else
249+
rm -f "$IMAGE_NAME"
250+
error_exit "Rootfs 文件已损坏或版本不匹配,请重新下载"
251+
fi
259252
else
260-
rm -f "$IMAGE_NAME"
261-
error_exit "Rootfs 文件已损坏或版本不匹配,请重新下载"
253+
log "WARN" "未找到验证文件,跳过验证"
254+
return 0
262255
fi
263256
}
264257

@@ -267,7 +260,7 @@ function extract_rootfs() {
267260
log "INFO" "开始解压 rootfs..."
268261

269262
# 显示解压进度
270-
pv "$IMAGE_NAME" | proot --link2symlink tar --exclude='dev/*' -xJf - 2>/dev/null || {
263+
pv "$IMAGE_NAME" | proot --link2symlink tar -xf - 2>/dev/null || {
271264
error_exit "解压失败,请检查镜像文件是否完整"
272265
}
273266

@@ -286,18 +279,10 @@ function create_launcher() {
286279

287280
cat > "$NH_LAUNCHER" <<- EOF
288281
#!/data/data/com.termux/files/usr/bin/bash -e
289-
290282
cd \${HOME}
291-
292283
# 取消设置 termux-exec 的 LD_PRELOAD
293284
unset LD_PRELOAD
294285
295-
# 检查 rootfs 是否存在
296-
if [ ! -d "kali-arm64" ]; then
297-
echo "错误: kali-arm64 目录不存在,请先运行安装脚本"
298-
exit 1
299-
fi
300-
301286
# Libreoffice 的临时解决方案
302287
if [ ! -f $CHROOT/root/.version ]; then
303288
touch $CHROOT/root/.version
@@ -502,6 +487,10 @@ function update_sources_list() {
502487

503488
# 替换为清华镜像源
504489
sed -i "s@http://http.kali.org/kali@https://mirrors.tuna.tsinghua.edu.cn/kali@g" "$sources_list"
490+
if [ "$wimg" = "nano" ] || [ "$wimg" = "minimal" ]; then
491+
nh sudo apt update && nh sudo apt install -y tightvncserver kali-desktop-xfce
492+
fi
493+
505494
log "SUCCESS" "Kali 软件源已更新为清华镜像"
506495
else
507496
log "WARN" "未找到 Kali sources.list 文件"

0 commit comments

Comments
 (0)