╰─❯ edl rl dumps --skip=userdata --genxml
Qualcomm Sahara / Firehose Client V3.62 (c) B.Kerler 2018-2024.
main - Trying with no loader given ...
main - Waiting for the device
......
main - Hint: Press and hold vol up+dwn, connect usb. For some, only use vol up.
main - Xiaomi: Press and hold vol dwn + pwr, in fastboot mode connect usb.
Run "./fastpwn oem edl".
main - Other: Run "adb reboot edl".
#这里修改原本的 mobile-usb-gadget 脚本
sudo vim rootfs/usr/sbin/mobile-usb-gadget
#!/bin/sh
CONFIGFS=/sys/kernel/config/usb_gadget/g1
setup() {
#echo host > /sys/kernel/debug/usb/ci_hdrc.0/role
# Remove All Gadgets If Gadget Exist
[ -d $CONFIGFS ] && gc -c
# Setiing Up Rndis
gc -a rndis
sleep 1
# Setting Up Adbd
gc -a ffs
mkdir -p /dev/usb-ffs/adb
# in offical version of gc name will be ffs.x
mount -t functionfs adb /dev/usb-ffs/adb
# Fire Up Adbd
adbd -D &
# (hack) wait adbd setup
sleep 1
# Enable Gadget
gc -e
}
reset() {
echo "Removing the USB gadget..."
# Remove USB gadget
if [ -d $CONFIGFS ]; then
echo "Removing gadget configuration..."
gc -c
fi
}
case "$1" in
reset) reset ;;
setup) setup ;;
*) ;;
esac
你是否想过,掌心大小的随身 WiFi 设备,也能变身为功能完整的 Linux 开发平台?
本文将以 deepin 深度操作系统以及高通骁龙 410 处理器随身 WIFI 为例,为大家分享系统移植的使用思路与经验。感谢社区用户 @空木蓮華 的投稿及贡献。
导出eMMC数据
在设备开发与维护场景中,获取主线内核设备树的最佳参考源是原厂固件包内 boot.img 搭载的原始设备树文件。为分析整个系统,我们首先需要备份eMMC存储芯片各个分区的数据,最直观的实现方案是通过安卓 Shell 终端,利用 dd 命令将各个分区逐一生成镜像文件。
此处我们使用基于Python3 实现的高通EDL模式编程器,只需进入EDL模式,即可通过该工具实现分区擦除、烧写、导出等操作。具体操作步骤如下:
安装完成后,执行以下命令,可以看到 adb reboot edl 提示,随后切换另一个终端执行。导出的文件在 dumps 目录下。
随后我们需要判断设备 Secure Boot(安全启动)功能的状态:
EDL 模式自带的诊断功能可直接查询 Secure Boot 状态:
可以看到此处显示Secure boot disabled,即secure boot没有开启。此时可以自由替换除WiFi和Modem校准数据之外所有分区的内容。
根文件系统制作
安装基础工具链
不同型号的设备可能有微小的区别,自行查找对应的资源,这里只替换资源里的 rootfs.img 镜像。
挂载 chroot
用户与本地化
添加 adbd 服务
添加 gc 服务
修改 mobile-usb-gadget 服务
清除缓存
转换镜像
拷贝内核
这里不重新构建内核,用 openstick 提供的内核和boot.img。
拷贝固件
这里从原作者给出根文件系统拷贝 /lib/firmware/* 里的驱动到新制作的根文件系统。
卸载设备
三、镜像制作
创建一个新磁盘,启动的磁盘已经写死到 boot.img 这里创建一个磁盘并设置原本的 UUID。
四、镜像烧录
WIFI网卡进入 fastboot 模式(插入设备使用 adb reboot bootloader)后,把 rootfs 重新刷入。
如果刷写错误可以按住 WIFI 网卡上的按键进入 edl 模式,使用前面的 edl 工具,刷 rootfs 分区。
至此 deepin 深度操作系统便被成功移植至随身WiFi上,这台曾经局限于联网功能的小设备已成功化身为可随身携带的 Linux 开发平台。
以上便是在随身WiFi上移植 deepin 系统的全过程,本教程至此结束。
通过以上讲解,相信大家已经了解了系统磁盘镜像的制作过程。这里以 deepin 为例,如果需要其他发行版也可参考这一思路灵活修改。
再次感谢 @空木蓮華 的贡献及分享!若您在实践过程中遇到了任何问题,或者对我们的教程有任何建议,欢迎随时回帖与我们交流。
参考资源:
https://sswifi.net/tutorial/2-410-wifidebian.html
https://blog.csdn.net/github_38345754/article/details/121462292
https://github.com/OpenStick/lk2nd
https://www.kancloud.cn/handsomehacker/openstick/2636505
查看原文:https://chenchongbiao.github.io/ExploreDeepinDev/system/system-porting/Qualcomm410.html
B站视频:【22元随身Wi-Fi 玩转系统移植!deepin + 高通骁龙410 实战全记录】