缘由
记得2014
年看敢死队3的时候,在1:30:22
附近,Barney Ross
带着Galgo
还有他的旧队友去解救新招募的成员,Conrad Stonebanks
在整栋大楼部署了C4
,Gunner Jensen
手腕戴着Thorn
的无线电干扰装置干扰了C4
的爆炸时间。
当时觉得这个非常酷,印象非常深刻,后来也在twitter
见到了各路大神制作的移动Hack
设备
有这样的
也有这样的
后来偶然间得知kali nethunter for android
,简直打开了新世界
其实说实话,虚拟键盘总归没有实体键盘得劲,如果BlackBerry KEYONE/KEYTWO
能安装kali nethunter
那简直完美啊
后来接触了玩无线安全的,无线电安全的,硬件安全的,对这个就有了无限向往,在大学的一个工作室里偶然发现了一个同学,用了一款实体键盘的智能安卓手机,哇,简直又刷新了我的认知
由于学生时代没钱,工作了以后偶然间在闲鱼看到了一个成色极好的,于是就买来折腾了许久,但是发现这个没有办法解bootloader
对于移动端研究的还真不是特别多,以前刷机都是找什么一键ROOT
,后来Android5.0
开始主流厂商就上了Bootloader
来对抗Bookit
和供应链攻击,基本就没怎么研究,这次就当是熟悉刷机流程
环境准备:
- adb
- 对应手机的驱动
- 原厂
ROM
包
adb安装
Mac
直接brew
安装即可
brew cask install android-platform-tools
Windows
直接来这个地方下载即可
当然这里也有Mac
, Windows
, Linux
的包
下载完直接添加环境变量,如果你是Windows10
,那直接下面的
计算机->属性->高级系统设置->环境变量->系统变量
如果你是Windows11
路径是
Settings->System->About->Advaned_system_settings->Environment _Vaiables
然后设置value
和key
value | key |
---|---|
Android | C:\Program Files\platform-tools |
Path | C:\Program Files\platform-tools |
Path
这个直接在Path
那个点编辑直接加在后边就可以
然后应用
Linux
sudo apt install android-tools-adb // debian/ubuntu
sudo yum install android-toos // centos
驱动
根据你的架构,提前准备好你用的驱动,我所用的驱动如下:
- BlackBerry-USBDrivers-5.0.0.2.exe
- latest_usb_driver_windows.zip
- Mobile+Upgrade+Q+5.1.8+Setup.exe //这个是黑莓用来恢复/救砖用的软件
原厂ROM
包
你可能要准备的不仅有原厂的ROM
包还有第三方的包,因为黑莓没有第三方的包,所以我试N
多个原厂的包,有的时候一个包不行就得下另一个包,建议先把能用的包能下载都下了,不然的话用到哪个下哪个很耽误时间,如果你们恰好也在研究黑莓没有镜像可以联系我,我传给你
在选择ROM
包时候要确定你自己的硬件版本,直接在拨号键入:
*#837837#*
然后直接在这个网站对照硬件版本选择是否支持OTA
的系统版本
还有一个项目可以帮你快速查询哪些ROM
支持OTA
, 这个项目有很多脚本自行选择筛选,可以根据系统版本筛选,也可以根据硬件版本筛选
┌─[hacker@iMac]-[~]
└──╼ $ python tclcheck_allfull.py -p PRD-63734-002 -l
Loading list of devices.
List of latest FULL firmware by PRD:
PRD-63734-002: ABX921 8047b8994f052131be076b4aa824d654bb1f9f37 (KEYone BBB100-4 (Unlocked))
There are 13 logs collected in the logs/ directory. Please consider uploading
them to https://tclota.birth-online.de/ by running ./upload_logs.py.
keyone
- BlackberryKEYOne_AndroidOS_8.1.0_BBB100-1.2.4_ABP819.rar
- bbry_qc8953_sficn-user-production_signed_china-ABD174.zip
- APX921.zip
keytwo
- ABP924.7z
- ABT974.7z
- ABR886.7z
- bbry_sdm660_autoloader_user-bbf100-cn-china-ABR886.zip
关于命令使用
adb
和fastboot
命令很多,我最开始也是分不清都是哪个,用的多了就记住了,这里列举几个本文用到的
adb devices // 列出adb设备
adb install foo.apk // 安装apk
adb shell foo // 执行某个命令
adb reboot bootloader // 重启到bootloader模式
adb push foo sdcard/foo // 上传文件到手机
adb pull sdcard/foo // 下载文件到电脑
fastboot oem unlock // 解锁oem锁,每个手机厂商命令可能不一样
fastboot oem device-info // 获取设备信息
fastboot oem get-bootinfo // 获取boot信息
fastboot getvar all // 获取bootloader所有信息
fastboot erase foo // 抹除某个分区
fastboot flash partition_name foo.img // 刷入某个img镜像到某个分区
fastboot reboot // 重启
刷机与探索
众所周知黑莓以安全性著称,所以我原本也没指望那些自动化刷机工具能搞定,所以直接谷歌,当然也没发现什么特别好的方案,准确来说是基本没有
但是我找到了一篇西班牙的文章
https://www.ayudaroot.com/root/blackberry/como-hacer-root-al-blackberry-keyone/
使用的是MTKRoot
进行刷机,其实原理就是结合Magisk
和ADB
还有FastBoot
进行刷机,当时的我并不知道什么是Magisk
,由于程序是西班牙语,头疼的很看不懂,研究了好一阵才明白软件是怎么用的,先说结果最后的确成功root
了,但是magisk
并没有成功过的写进去
0x01
首先,提取原厂ROM
里的boot.img
,然后点击No hay boot
这里意思应该是载入boot.img
,就是把boot.img
传入手机
这里传入之后,会显示Boot cargado
, 我也不知道什么意思,大概是已载入
然后点击Procesar Parche
,进行打补丁,相当于操作Magisk
进行打补丁,只不过自动化了
然后会弹出指示提醒
首先在Magisk
点击installer
然后选择一个镜像进行修补
然后进入文件管理器选择你刚刚传入的boot.img
,它还进行了重命名以防弄混这里重命名成了unroot.img
然后就开始修补了,修补完成之后会将修补完的镜像放在/sdcrad/Download
下
会提示你完成
然后这里我们点击lr fastboot
大概意思就是进入fastboot
模式,当手机重启到bootloader
模式时候我们可以点击Test Fastboot
查看电脑是否识别到了设备,然后查看我们的设备是否解锁了bootloader
如果未解锁,我们直接点击Liberar Bootloader
经过翻译,我们得知这个命令意思是发布引导,但是我执行完之后提示
FAILED (remote: unknown command)
finished. total time: 0.001s
5000003336 fastboot
desbloqueando Bootloader
Confirme la operación desde
la pantalla del dispositivo
-------
...
失败(远程:未知命令)
完成的。 总时间:0.001s
5000003336 快速启动
解锁引导程序
从确认操作
设备屏幕
还有一个认证失败的错误我没有截图,总之就是发布引导不成功,解锁bootloader
无望后
0x02
折腾了两三天,各种方法,也没能解锁bootloader
,不过好像可以用Magisk
绕过bootloader
直接root
没有试过,后来恰巧看到闲鱼有卖工程机的,就买了个BlackBerryKey2
我们把keyone
keytwo的
bootloader`的信息输出对比一下
┌─[hacker@iMac]-[~]
└──╼ $fastboot getvar all // keyone
(bootloader) bootmode:PRODUCT_MODE
......
(bootloader) subvariant:china
(bootloader) variant:cn
(bootloader) device:bbb100
......
(bootloader) prd:PRD-63734-002
(bootloader) product:MSM8953
(bootloader) security:enabled // 未解锁
all:
Finished. Total time: 1.385s
---------------------------------------------
┌─[hacker@iMac]-[~]
└──╼ $fastboot getvar all // keytwo
(bootloader) bootmode:PRODUCT_MODE
(bootloader) hlos_unsigned.tkn:disabled
(bootloader) subvariant:
(bootloader) variant:americas
(bootloader) device:bbf100
(bootloader) prd:PRD-63825-802
(bootloader) chip_name:SDM660
(bootloader) security:disabled
(bootloader) bb_bc_version:ABT974
(bootloader) unlocked:yes // 已解锁
(bootloader) battery-soc-ok:yes
(bootloader) version-baseband:
(bootloader) version-bootloader:
(bootloader) variant:SDM EMMC
(bootloader) secure:no // 已解锁
(bootloader) product:bbf100americas
(bootloader) kernel:uefi
all:
Finished. Total time: 0.003s
既然已经解锁了bootloader
,又开始打开了MTKRoot
,以前步骤一样
这次直接点击Rootear
,然后等几秒钟Root
的按钮就会变黑,点击Root
这次成功Root
了,提示ACCESO ROOT OK!
然后执行Check Root
查看是不是root
成功了
然后我们来到手机端验证是否Root
成功
我们在手机版本升级里边看到,设备已被root
但是我们在magisk
发现超级用户选项依然是灰的
然后我们下载了root status
,经检测显示This device is Rooted
后来经过交流发现,如果用magisk``root
成功后是这样的
也就是说我们只是root
了,并没有把magisk
刷进引导
0x03
尝试手动刷,我们首先
Last login: Wed Dec 7 22:39:03 on ttys005
┌─[hacker@iMac]-[~]
└──╼ $adb devices
List of devices attached
1164553779 device
首先将我们提取的boot.img
传到我们手机里
┌─[hacker@iMac]-[~]
└──╼ $adb push boot.img sdcard/
boot.img: 1 file pushed, 0 skipped. 19.4 MB/s (22405120 bytes in 1.104s)
┌─[hacker@iMac]-[~]
└──╼ $adb shell ls sdcard/ |grep boot
ls: sdcard//Locker: Permission denied
boot.img
然后安装Magisk
┌─[hacker@iMac]-[~]
└──╼ $adb install Magisk-v25.2.apk
Performing Streamed Install
Success
打开Magisk
,这里我们看到Ramdisk
为yes
,直接继续点击Install
这里由于我们在fastboot getvar
时候并没哟发现vbmeta
分区所以这里我们选择path
,强制加密也选上
然后提示我们选择一个文件进行patch
,我们点Select and Patch a file
点击我们上传的boot_keyone.img
然后点击Next
补丁完之后,patch
之后的img
存在了/sdcrad/Download
下
我们直接将img
下载下来
┌─[hacker@iMac]-[~]
└──╼ $adb pull sdcard/Download/magisk_patched-25200_ur3H4.img
sdcard/Download/magisk_patched-25200_ur3H4.im...skipped. 25.3 MB/s (22843392 bytes in 0.861s)
然后,重启到fastboot
┌─[hacker@iMac]-[~]
└──╼ $adb reboot bootloader
然后,刷入补丁之后带有magisk
的boot.img
┌─[hacker@iMac]-[~]
└──╼ $fastboot flash boot magisk_patched-25200_ur3H4.img
Sending 'boot' (22308 KB) OKAY [ 0.671s]
Writing 'boot' OKAY [ 0.199s]
Finished. Total time: 0.971s
然后重启
┌─[hacker@iMac]-[~]
└──╼ $fastboot reboot
Rebooting OKAY [ 0.006s]
Finished. Total time: 0.006s
发现依然是系统显示已经root
但是Magisk
的超级用户为灰色
后来,去翻了magisk
的官网以及使用说明,发现我的操作没问题,不知道什么情况
目前只能先装个Termux
先用着,不过好像没什么用,不过已经解锁了而且root
了,以后有时间在慢慢折腾
关于Termux
配置
这里有个坑,如果你是从谷歌商店安装的Termux
默认版本不是最新的启动时候会报一堆红的提醒,建议直接从github
下载安装
切换软件源
sed -i 's@^\(deb.*stable main\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/termux-packages-24 stable main@' $PREFIX/etc/apt/sources.list
sed -i 's@^\(deb.*games stable\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/game-packages-24 games stable@' $PREFIX/etc/apt/sources.list.d/game.list
sed -i 's@^\(deb.*science stable\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/science-packages-24 science stable@' $PREFIX/etc/apt/sources.list.d/science.list
更新并安装常用软件,开启sshd
pkg update
pkg install vim curl wget git tree openssh -y
sshd
备份与恢复
termux-setup-storage // 开启存储访问权限
----------------备份----------------
cd /data/data/com.termux/files
tar -zcf /sdcard/termux-backup.tar.gz home usr
----------------恢复----------------
cd /data/data/com.termux/files
tar -zxf /sdcard/termux-backup.tar.gz --recursive-unlink --preserve-permissions