从 bzImage 到嵌套虚拟机:用 QEMU/KVM 搭建 Subaru DENSO 车机调试环境

从 bzImage 到嵌套虚拟机:用 QEMU/KVM 搭建 Subaru 车机调试环境 本文研究的 Subaru DENSO 车机是一套由多个操作系统和专用硬件共同组成的系统:Intel x86 平台上运行着 QNX Hypervisor、QNX Neutrino 和 Linux,应用又依赖图形、音频、网络和认证芯片等组件。直接在这样的量产设备上调试,首先就会遇到调试条件的问题:shell、串口和调试器的访问通常受限,一次服务崩溃或系统重启又可能打断车机的正常使用。要反复观察程序、比较配置和收集崩溃现场,一套独立于实车的实验环境会方便很多。 ...

2026-10-19 · 更新于: 2026-10-20 · 36 分钟 · sparktour

无需root,用Shizuku把Android手机变成Asterisk的蜂窝SIP网关

笔者之前用EC20和EG25模块配合Asterisk搭了蜂窝网关(《使用EC20模块配合asterisk及freepbx实现短信转发和网络电话》、《将DJI/Baiwang的增强图传模块接入Asterisk并用Telegram Bot收发短信》),又用Flexisip解决了SIP客户端在后台收不到来电的问题(《使用Flexisip和自编译Linphone为Asterisk/FreePBX添加SIP Push》)。这套系统里还缺一块:有些卡插在模块里就是用不好,最省事的办法是让一台普通的Android手机直接当网关。 ...

2026-10-10 · 24 分钟 · sparktour

从小米手机固件提取MBN,为Quectel EC20/EG25模块补充VoLTE运营商配置

笔者之前在《使用EC20模块配合asterisk及freepbx实现短信转发和网络电话》里提到,EC20虽然能通过AT+QMBNCFG切换运营商配置,但模块内置的配置数量很少。以手上的EC20 R06为例,只有ROW、联通、电信和移动四份;另一台类似EG25的模块虽然有二十份,也没有一些香港运营商的volte配置。 这些运营商配置就是Qualcomm的MBN(Modem Configuration)。如果SIM需要的VoLTE参数不在固件里,且运营商不认ROW固件里的参数的话,单独执行AT+QCFG="ims",1并不能让模块强行注册VoLTE。于是笔者尝试从基带分支相近的高通手机固件中提取MBN,再通过模块正式支持的AT接口加入EC20/EG25。 ...

2026-09-17 · 7 分钟 · sparktour

使用Flexisip和自编译Linphone为Asterisk/FreePBX添加SIP Push

笔者在2022年写过一篇《使用EC20模块配合asterisk及freepbx实现短信转发和网络电话》。当时虽然已经可以用SIP客户端接听插在EC20里的手机卡,但文章最后还留了一个很影响实际使用的问题:手机上的SIP客户端必须保持运行,否则呼入电话无法连接到SIP Client,呼叫端口会提示忙音。彼时笔者找到的简单方案只有Zoiper Push Proxy,但它并不是免费功能。 几年后,随着Agentic LLM的发展(误),笔者终于重新捡起了这个遗留问题。在与Codex交流一晚上后,笔者形成了以下的方案:在公网VPS上自行部署Flexisip,把它作为Issabel/Asterisk前的SIP Push Gateway和RTP中继;然后fork Linphone Android,更换自行创建的Firebase项目并重新编译。 ...

2026-09-14 · 更新于: 2026-09-17 · 23 分钟 · sparktour

为 2023 Subaru Outback 安装 Subaru D harness

为 2023 Subaru Outback 安装 Subaru D harness 笔者最近购入了Comma.ai生产的Comma4,打算为我的车适配openpilot。本文概述了在 2023 Subaru Outback(双目 EyeSight 版本) 上安装 comma 随附的 Subaru D harness的过程(理论上2023年之后的SGP Platform的车都是这么拆装的,唯一的区别可能在于有没有螺丝)。简而言之:1. 拆下 EyeSight 外面的顶棚盖板 2. 把原车插头和 D harness 串接起来 3.收好线束、装回盖板即可。 ...

2026-08-31 · 更新于: 2026-10-20 · 4 分钟 · sparktour

将DJI/Baiwang的增强图传模块接入Asterisk并用Telegram Bot收发短信

前几年笔者写过一篇使用EC20模块配合asterisk及freepbx实现短信转发和网络电话的文章。当时的目标是把一张手机卡从长期插电的旧手机里解放出来,让它可以通过Asterisk接打电话,并用Telegram等工具转发短信。几年后,笔者在某频道看到了拼多多上有商家在清仓DJI的一代增强图传模块,于是花30多元购买了一块。它的USB ID显示为2ca3:4006 DJI Technology Co., Ltd. Baiwang,但从网上的资料和AT命令看,它本质上仍然是高通平台上的EG25/EC25一类模块,不过无法刷入标准的Quectel固件。 ...

2026-07-04 · 15 分钟 · sparktour

1980-2025:45年前的深圳卫星图

笔者最近网上冲浪时看到了一篇有关如何从USGS Earth Explorer上下载历史卫星图像的文章,于是实战了一下,使用QGIS对齐了1980年9月11日(来自USGS Earth Explorer)和2024-2025年(来自Google Earth)的深圳市区卫星图,并对一些深圳的特色地点做了比较。 ...

2025-04-16 · 更新于: 2025-04-24 · 4 分钟 · sparktour

自建OpenStreetmap地图瓦片服务:迁移mbtiles到pmtiles

前言 笔者曾在三年前写过一篇如何self host基于OpenStreetmap数据的博客。在当时的文章里,笔者使用的后端是maptiler开发的的tileserver-gl。它需要一个转换好的mbtiles文件,才能正常serve地图。但遗憾的是,maptiler把下载转换好的地图作为一项商业服务提供,我们只能自己使用maptiler提供的openmaptiles对地图进行转换。由于mbtiles的本质是基于sqlite的地图数据库,使用openmaptiles制作地图的速度相当缓慢(在一台48C256G的机器上转换全世界的地图大概需要一整天的时间,并且对磁盘的IO有较高的要求),host地图也需要使用tileserver-gl处理请求,将mbtiles里的数据转换成pbf格式发送给客户端。 直到最近,笔者注意到了一些GIS开源项目在使用的Protomaps项目,以及他们提出的pmtiles格式。如Protomaps的发起人给博客起的标题《Dynamic Maps, Static Storage》那样,pmtiles的一大优势是如果不需要raster tiles,服务端不再需要安装任何软件,只需要一个“Static Storage”即可(无需任何后端软件对地图数据进行处理)。确切的说,一个支持HTTP Range的服务器。包括nginx,caddy等常见的web服务器和S3服务理论上都是支持这项特性的。 ...

2025-01-15 · 更新于: 2025-01-16 · 5 分钟 · sparktour
hackergame score

USTC Hackergame 2024 Writeup

这是本人第五次参加USTC的hackergame了,本次的排名相比上次略有进步,进到了50名内。 PaoluGPT 观察代码注意到了可能可以进行SQL注入: ...

2024-11-14 · 更新于: 2024-11-15 · 17 分钟 · sparktour

PT924G光猫配置VLAN单线复用

在本文中,我们将介绍如何在PT924G光猫上配置VLAN单线复用,以便在单根光纤上同时传输上网,IPTV和TR069等业务。 获取超级管理员密码 Manufacturer:youhua ProductClass:PT924G HWVersion: V4.0.00 SWVersion: V10.00.924GD02 参考恩山的帖子: ...

2024-02-02 · 更新于: 2024-04-14 · 2 分钟 · sparktour