定制AOSP Vendor镜像:Pixel 7a(lynx)刷入后SIM卡无法识别
定制AOSP Vendor镜像后SIM卡无法识别的排查解决指南
背景与操作流程
我通过修改BoardConfigPartial.mk定制AOSP的Vendor镜像以替代预构建镜像,操作步骤如下:
- 注释预构建Vendor镜像行:
# BOARD_PREBUILT_VENDORIMAGE := vendor/google_devices/lynx/proprietary/vendor.img - 添加以下配置启用Vendor镜像生成:
ENABLE_VENDOR_IMAGE := true BOARD_VENDORIMAGE_PARTITION_SIZE := 1073741824 # 1GB BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := ext4 TARGET_COPY_OUT_VENDOR := vendor ALLOW_MISSING_DEPENDENCIES := true - 发现初始定制镜像体积偏小,对比预构建镜像后补充了缺失文件,最终生成了包含所有必要文件的定制Vendor镜像。
问题
刷入定制Vendor镜像后设备可正常启动,但SIM卡无法被识别。
设备状态
- SIM卡设置界面:无SIM卡识别相关显示
- 快捷设置面板:无移动网络信号图标
排查与解决步骤
1. 校验射频/基带相关文件完整性与一致性
- 对比预构建
vendor.img与定制镜像,检查vendor/lib、vendor/lib64下的RIL(无线接口层)库文件(如libril.so、libsec-ril.so),确保文件名、文件权限、SELinux上下文完全匹配。 - 核对
vendor/etc下的射频配置文件:ril.conf、apns-conf.xml、telephony.properties等,确认文件存在且内容与预构建镜像一致。
2. 检查SELinux权限与日志
- 执行
adb shell getenforce查看SELinux状态,若为Permissive,临时切换为Enforcing(adb shell setenforce 1),观察SIM卡是否恢复识别。 - 抓取SELinux权限拒绝日志:
adb shell dmesg | grep avc: denied,若存在与RIL、Modem相关的权限被拒记录,需补充对应的SEPolicy规则到Vendor侧的SELinux配置中。
3. 验证Modem与RIL进程状态
- 执行
adb shell ps -A | grep ril查看RIL相关进程是否正常启动,若未启动,通过adb logcat -b radio或adb logcat | grep RIL抓取日志,定位进程启动失败原因(如依赖库缺失、配置错误)。 - 执行
adb shell dmesg | grep modem查看Modem固件是否正常加载,确认/dev/modem等设备节点是否初始化成功。
4. 核对Vendor镜像分区配置
- 执行
adb shell df -h /vendor查看分区实际使用情况,若接近BOARD_VENDORIMAGE_PARTITION_SIZE设置的1GB上限,需调大分区参数避免文件写入时被截断。 - 确认
BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE是否与设备硬件要求匹配,部分设备可能要求使用f2fs而非ext4。
5. 检查Modem固件与相关二进制程序
- 对比预构建镜像,确认
vendor/firmware下的Modem固件文件是否完整复制,包括文件名、版本、权限。 - 检查
vendor/bin下的rild等射频相关二进制程序是否存在,且权限设置为755(可执行)。
6. 回测定位问题源
- 重新刷入预构建
vendor.img,确认SIM卡识别正常,排除硬件故障。 - 逐步添加定制规则,每次构建后刷入测试,定位是哪一项修改导致SIM卡识别异常。
内容的提问来源于stack exchange,提问作者Ilaveni Ranjith
相关产品推荐
相关产品推荐

