本着对Kali Linux的喜爱和好奇,我开始在二手收购的Nexus7二代2013版(超级贱卖,原价两百多美元,现价两百多人民币,还基本全新)上,安装一个Kali NetHunter。
实际上,Kali官方——当然其实是一群Hacker们,已经给出了非常详细的安装指南,详见Kali NetHunter Linux Root Toolkit (LRT)。我的操作基本上就是参照了这个流程,并基本上使用了上述链接中的这个代码包。
先说一下我的原材料吧。
- 硬件方面:
- ASUS NEXUS7 2013 2G/32G WiFi版。二手收购,拿到手的时候已经解锁过了。当然解锁的方法很容易,我自己经过操作也已经学会了。总的来说,刷机并不会使你失去解锁。Android4.4.4系统。
- 安装了Debian9.0的Linux系统台式机一台,有USB接口。后续ADB调试和FastBoot调试都需要用到USB线连接,所以这很重要。另外官网上给出的流程实际上Windows通过命令行也完全可以操作,但是Linux的操作流程要简单得多。
- 数据线!数据线!数据线!不是充电线!很多厂商(尤其是充电宝厂商)考虑到一般用户一辈子也不可能将手机和电脑插在一起,会出售一种叫做“充电线”的micro-USB转USB_A线。这种线相比起正常的micro-USB转USB_A数据线来说,缺少了两股线芯。要知道正常的USB线应该有四股线芯,分别是电源+5V,GND(地线),D+和D-(数据正和数据负)。通常的安卓手机充电的过程中根本用不到D+D-这两根线,所以如果仅仅用来充电的话,这种线没有任何问题,所以商品名称也不具有任何错误。这种线通常来说手感比较纤细——毕竟少了一半的线芯,所以价格也低廉很多。另外这也是为什么很多有特殊充电协议的手机,不能使用非原装(其实就是正常规格而非阉割版)的数据线充电的原因——这些手机在充电的时候,数据线芯上是有信号的。这种线是不可能!不可能!完成本次任务的!
- 软件方面,
- ADB工具!对于linux非常简单,只需要:sudo apt-get install android-sdk
- NetHunter-LRT工具包!直接从GitHub上克隆下来nethunter-LRT-master。如果你不知道怎么克隆,那就自己去查。这个工具包仅限Linux用户使用(因为都是bash脚本),对于Windows用户,参考官方教程4.2条目,下载后解压,或者也许不需要解压,打开这个文件夹,你会在里面看到一些 .sh 脚本,和一些文件夹。
- 事先准备好ROM包。本次我用的是谷歌官网上的安卓6.0.1,注意一定要按你的设备选取!谷歌官网因为众所周知的原因,不可能随便访问,因此如果你相信我的话,可以使用如下的度盘,提取码ykss。但是注意!这个仅限于Nexus7,2013WiFi版!如果你的设备不同,还请自行寻找ROM包,一切损坏概不负责。将这个ROM包放进 /nethunter-LRT-master/stockImages 目录下。
- 事先准备好NetHunter镜像。按照你的设备和准备刷入的ROM版本,选择下载Offensive-security提供的稳定版本。当然如果你对你的技术有自信,也可以下载Nightly版本。将这个镜像放在/nethunter-LRT-master/kaliNethunter 目录下。
顺便,维护者jcadduono说他缺一个女友,他的说明文件里公然张贴征婚网站网址。既然用了他的代码,我觉得我也可以顺便帮他宣传一下。 - SuperSU包。这个软件帮助你管理超级用户权限(基本上就是root权限)。需要去XDA_Chainfire post下载。下载后的压缩包放在/nethunter-LRT-master/superSu 目录下。
- TWRP第三方recovery系统。其实是个小型的系统,可以帮助备份和恢复,也可以帮助进行adb调试。可以去TWRP for Asus Nexus 7 2013 Wi-Fi下载,注意,一定要寻找适合你的设备的TWRP系统,在这个网页的根目录上仔细搜索。下载后的镜像(注意不是.apk)放在/nethunter-LRT-master/twrpImage 目录下。
开始安装之前,先进入开发者模式。方法是,进入设置,选择“关于平板电脑”,滑动到最下面,在“版本号”上连续点击6-8次(会有提示),就会解开开发者模式。退出关于平板电脑,会发现旁边多了一个选项——“开发者选项”。点击进入,勾选“USB调试”,随后插入电脑,并在弹窗中勾选,始终允许这台电脑进行调试。
接下来在终端中输入:
adb devices
如果设备列表中,有设备的话,说明连接没问题。如果是空的,那么:
sudo adb kill-server
adb devices
你的设备应该就可以挂载了。接下来,将你的终端定位到$/nethunter-LRT-master,进行后面的操作。
准备停当,可以开始安装了,首先,如果你的设备还没有解锁,那么最好先去学习一下如何解锁。我的设备已经解锁过了,所以不需要。但是官方给出的方法,就是运行./oemUnlock.sh。目测这个脚本会将机器reboot到fastboot模式,并运行:
fastboot oem unlock
这个命令,也即在fastboot模式下解锁oem。重启之后,你可以在任何界面下,按住音量减和电源键,大约30秒,你就能够进入fastboot界面。这个时候你应该能看到这样的一些文字和画面:
上图中,有一个 “LOCK STATE - unlocked”,意即已经解锁了。fastboot界面可以实现所谓“线刷”,是刷机最为安全可靠的一种方式,感兴趣的话可以学习一个,网上有很多教程,可以参考Fastboot烧机命令详解。如果你需要拯救砖头机,这个界面也是最核心的。当年我给华为手机刷固件的时候,就为此花了五十块钱——而实际上如果耐心学习,这些钱是可以省下来的——其实就是操作这个界面。
接下来,将会刷入谷歌官方的安卓6.0.1ROM包。这么做,是为了在一个相对干净的环境下,装入KaliNetHunter。如果你认为自己的系统很干净,并且系统版本是安卓5.1.1 或 6.0.1 ,或 CM 13.0,也可以跳过这一步,直接去看刷入nethunter。
确保你的平板设备在正常开机后的界面下(并允许USB调试。注意,此后的任何进程都需要允许USB调试)。在电脑终端上,运行:(注意,运行之前先确保在/nethunter-LRT-master/stockImages 目录下,只有官方ROM包的压缩包这一个文件或目录!并且不要解压!)
./stockNexusFlash.sh
这个脚本的运行将会在fastboot模式下,线刷进官方ROM包,并重启机器。实际上,如果你有把握的话,也可以自行线刷这个ROM包。我后来因为操作不熟练,因为一些很蠢的问题,把平板给砖了,就用线刷ROM包的方法拯救了平板。所以我的最终版本确实不是用这个脚本实现的——但是没差。
这个刷入官方ROM包的过程会有点长,刷完之后平板会自动重启,重启所需要的时间也比较长——因为是初次开机。所以请耐心等待。可以出去透透气。
接下来,就要进入整个刷机过程,最坑,也是最难的部分了!
重启终于成功!因为是初次开机——系统内的日志都清空了——所以谷歌会要求你做一些配置!第一步是选择语言,这没啥,第二步就完蛋啦!
在这一步,谷歌会要求你先连一个wifi。接着它会开始检查网络连接,试试看能不能连上谷歌服务器——但是因为众所周知的原因,这个网络连接检查会失败!然而,并不能跳过这一步。哪怕你到一个没有WiFi的地方,也跳不过去。没错,我去单位的地下室3层电梯井一个完全没网的地方猫了半天也没能跳过,谷歌可以说是非常执着了。
那么怎么办呢?要问一问神奇小海螺么?
当然不!可以问问神奇的度娘!参考5.1以后版本跳过网络验证方法
但是这样真的可以么!当然不!因为USB调试的权限,在重装系统后,失去了!你没有办法进行更进一步的调试和修改了!所以你还要问一问神奇的本少女!具体怎么做!
首先,你要通过线刷的方式,刷入第三方recovery系统,TWRP(按照官方教程,这本来是更后面需要做的事)。长按音量减和电源键,进入上述的fastboot界面。随后在终端上操作:
fastboot devices
用于确认连接。如果连接成功,你应该能看到一个挂载的设备。如果不能,这条命令将会一直搜寻设备。随后将你的终端转到 /nethunter-LRT-master/twrpImage 目录下:
fastboot flash recovery twrp-3.2.3-0-flo.img
twrp的版本号可能不一样,自行适应。等待这个过程结束之后,重启fastboot,方法是按音量加减键修改,短按电源键确认,进入一个叫“restart fastboot”的选项。
随后,在新开的fastboot界面下,同样的方法选择“recovery mode”,你将会进入TWRP系统的界面。其实这么来说,你的平板现在就是双系统的。TWRP这个系统是装载在recovery分区的,刚才的操作相当于是变更了引导。
在twrp系统下,选择MOUNT,勾选/system。然后先把平板放在一边(参考资料中说的MTP,通常在新版的TWRP中已经默认开启了)。在电脑的终端中输入:
adb shell
为了防止出错,你可以在输入这条之前,先按照前面的方法测试一下adb设备是否挂载成功。接着,这条命令将会打开平板电脑的shell界面——没错,就是代码行操作。实际上已经可以做很多事了。随后输入:
sed -i 's/ro.setupwizard.network_required=true/ro.setupwizard.network_required=false/g' /system/build.prop
如果你之前没有挂载(mount) /system,这条命令将会返回“找不到这一目录或文件”的结果(当然是英文)。所以前一步一定要挂载。在这一步操作之后,你将会获得跳过初始网络检测的权限。接着,输入:
exit
退出adb shell。
然后重启——你可以选择twrp里的reboot选项。你就会发现,刚才卡了你很久的网络连接检测,可以跳过了。接下来,按照之前讲的,去打开USB调试的权限(重装系统后这个权限默认被关闭了)。
下面,就是核心内容——刷入KaliNetHunter!
终端重定位到 /nethunter-LRT-master/目录下,确保ADB连接无误,运行:
./twrpFlash
这一步,将会把twrp、superSu、netHunter全部刷进平板中去。因此,twrpImage目录必须只有twrp的镜像,superSu目录下必须只有superSu压缩包,kaliNethunter目录下必须只有相应的netHunter镜像。亲测如果有别的,那么这个安装过程一定会出错!
需要等待一段时间,然后你的平板会重启一两次。接下来她会进入TWRP的界面,自动执行一些命令。这个过程中,需要你同意一些协议,并对安装做一些选择——这些选择很简单,看你的爱好和需求就好了。这个过程中,仔细阅读相应的文字说明,千万不要在最后一步出了差错。
经过很长一段时间的等待(亲测会在90%处卡很久)之后,Kali NetHunter就会在一段酷炫的开机动画之后登场啦!
对了,现在你还没有退出开发者模式,因此,你有权限停用一些google服务。千万不要这么去做!,一旦你停用了google服务,那么,下次开机必然会失败,不停地卡在启动安卓-启动安卓-启动安卓-直到没电。我第一次安装就是这么失败的——最后选择线刷的方式,重装了系统。
另外,你也还没有退出USB调试。你现在可以通过ADB代码的方式,安装一些来自你电脑的.apk应用程序,也可以传输一些文件。具体的可以自行参考一下adb命令的相关使用。
不要随便在平板上在线升级你的应用程序!因为Nexus是默认用Google Play应用市场的,可是你根本上不去——导致应用常常能更新,但是更新后通不过认证,不能启用。
如有问题,欢迎讨论,另外,也欢迎朋友们找我拯救变砖的安卓手机——不保证能修好。