Featured image of post [教程向]基于Termux在安卓手机上安装Kali

[教程向]基于Termux在安卓手机上安装Kali

在你的手机上搭建一台随时可用的Kali!

获取termux

Termux官网指引,我们可以从官方Github软件仓库下载最新版本,链接如下:

GitHub - termux/termux-app: Termux - a terminal emulator application for Android OS extendible by variety of packages.

安装相应版本即可

安装Kali

  1. 打开termux(打开之后不要切换目录,在当前目录下执行以下命令)

  1. pkg update 更新依赖,类似于更新以安装的软件(依赖更新检查完成之后会有一个让你确认是否继续更新的操作,我们输入y就可以了)
1
pkg update

  1. pkg upgrade升极版本,这个相比较上个命令,更新的是系统版本
1
pkg upgrade

  1. 申请存储访问权限 termux-setup-storage(这个命令可以是我们能使用termux向手机写入数据)
1
termux-setup-storage

  1. 安装 pkg install wget(用来下载文件的命令)
1
pkg install wget (因为我已经安装过了,所以显示的是这个)

  1. 下载 安装脚本wget -O install-nethunter-termux https://offs.ec/2MceZWr (这个是用来安装kaili的脚本,这个是重点,因为系统的镜像是在这里下载的,我们需要耐心的等待下载完成)
1
wget -O install-nethunter-termux https://offs.ec/2MceZWr

然后就得到了这样一个文件

  1. 给脚本执行权限chmod +x install-nethunter-termux (这样我们可以执行这个脚本’x’是执行权限)
1
chmod +x install-nethunter-termux

  1. 运行安装脚本 ./install-nethunter-termux
1
./install-nethunter-termux

  1. 然后会出现一个kali的banner,等待下载完成(要有耐心,和一个流畅的网络,中途可能会下载失败,我们只需要重新开始就行了 因为wget 加上了O选项,所以会继续上次的下载位置,若是下载完成,但是不能安装系统,多半是系统安装包被命名其他的名字或者是下载的确是失败了)

  2. 下载完成之后,执行 ./install-nethunter-termux,等待一阵之后,安装完成。

nethunter(或者缩写nh) 开启 kalilinux命令行,注意开启的是普通权限的命令行

nethunter -r 开启的是管理员的命令行

nh kex 打开vnc图形化界面(普通权限)首次使用需要配置密码(还会问你要不要设一个仅观看的vnc密码,自行选择是否启用)

nh kex stop 停止桌面服务

使用VNC连接可视化界面

下载安装app:VNC Viewer ,下载地址:VNC-Viewer 蓝奏云

在Termux中输入以下指令启动图形化界面:

1
nh kex

这时会下面会输出地址和端口,一般为127.0.0.1:5901

在VNC中填写地址和端口后设置画质为高画质后点击连接

要求输入密码,填写你创建的密码即可

问题解决:VNC服务停止,输出Process-completed-signal-9

简述

使用Termux安装Kali发行版,用RealVNC Viewer登入系统,没过几秒就会收到The connection closed unexpectedly的警告!

接着回到Termux,看到终端机显示[Process completed (signal 9) - press Enter]的错误,原来是Termux的行程被Android系统中止了,但是手机RAM明明还够用啊?

此问题源自于Android 12引入的新机制,下面简述原因,以及提供暂时的解决方法。

Termux发生signal 9错误的原因:agnostic-apollo在Phantom, Cached And Empty Processes一文中详述了Android 12引进的新机制。Android系统将会监控APP所fork出来的子行程,并在达到32个以上子行程后将其终止,避免占用过多CPU资源。

此一机制称为"Phantom Processes Killing",因为开发者最害怕看到这种情况,得名影子行程杀手。

在开发者要求下,Google于Android 12L以及Android 13以上版本加入了关闭Phantom Processes Killing的选项settings_enable_monitor_phantom_procs,然而使用者还是要手动使用ADB指令关闭。因此这是Google Android的问题,Temrux开发者尚未找到正式解决办法,下面指令停用的办法是agnostic-apollo提出的。

以Termux来说,Phantom Processes Killing会导致Termux执行指令的时候被系统随机中止。Proot distro若要跑图形环境自然就会制造更多子行程了吧。尤其在切换到后台,要用VNC Viewer连线的时候,就会触发Phantom Processes Killing,不管手机RAM有多大。接著回到Termux便会看到[Process completed (signal 9) - press Enter]的错误讯息。

解决Termux的signal 9错误执行指令将Phantom Processes Killing停用即可,虽然会导致某些APP的背景行程跟著不受控制。

以下假定Android手机皆有安装Google Play服务框架,因为GMS会不定时覆写装置设定,所以要一并将其关闭。然而关闭GMS覆写可能会导致手机卡开机。

如果手机没有Root权限

点击下载Windows版adb工具包并且解压缩。

进入platform_tools目录,会看到ADB和Fastboot的执行档。在这里按SHIFT + 右键,开启终端机(或Powershell)。

手机开启系统设定→关于手机,版本号码点5下,之后搜寻“开发人员选项”进去开启“ADB侦错”。

将手机插上电脑,于Windows的终端机输入以下指令,在手机上同意侦错。

1
adb devices		检测设备

接著按照Android版本,执行以下指令:

Android 12L和Android 13:

1
/adb shell "settings put global settings_enable_monitor_phantom_procs false"

Android 12:

1
adb shell "/system/bin/device_config set_sync_disabled_for_tests persistent; /system/bin/device_config put activity_manager max_phantom_processes 2147483647"

执行reboot或手动重启,完成。

如果手机有Root权限

开启Termux,切换到su,取得root权限

1
su #取得root权限

按照Android版本执行指令。

Android 12L和Android 13以上:

1
su -c "settings put global settings_enable_monitor_phantom_procs false"

Android 12:

1
su -c "/system/bin/device_config set_sync_disabled_for_tests persistent; /system/bin/device_config put activity_manager max_phantom_processes 2147483647"

执行reboot或手动重启,完成。

Licensed under CC BY-NC-SA 4.0
已存在于互联网
发表了126篇文章 · 总计210.25k字
萌ICP备20267077号
Powered by ctOS