长安车机白名单安装软件

0x00 前言

我的车是CS55Plus 二代,众所周知长安的车机无法安装第三方软件,之前一直有安装百度CarLife使用oppo car+的想法,但是感觉很麻烦就没弄,近期偶然间看到宣传免费白名单安装,不需要root/破解啥的(新版本的系统已经无法破解了)。所以就加了QQ群,结果发现,工具免费,软件商店要钱~(妙啊妙啊)。然后就开始了我的折腾,就为了省60块钱。

0x01 原理

网上有大神通过逆向框架文件,找到了第三方文件限制的判断代码位置,发现有后手,如果包名不在安装白名单里,会获取签名证书的序列号和系统应用进行对比,详见链接:hcf6666

然后具体的操作就是先将我们想要安装的软件下载下来,然后自己构建指定序列号的证书进行签名,然后车机开启adb,车机和电脑用数据线连接,电脑用adb上传和安装软件。

0x02 详解

通过这种方式安装的软件不能直接删除,如果要删除软件必须将车机系统恢复出厂设置!!!

网上操作图文参考文章:https://www.cnblogs.com/dingshaohua/p/18189220

1 下载软件

  • 可以去酷安或者车的交流群里去找,这里给一个网上找的网盘:caadb

2 对软件进行签名

#生成私钥
openssl genrsa -out private.key 2048

#生成v1证书
openssl req -new -key private.key -out csr.csr -subj "/[email protected]/CN=SCM/OU=Software/O=WTCL/L=HaiDian/ST=Beijing/C=CN"

#设置序列号
openssl x509 -req -in csr.csr -signkey private.key -out certificate.crt -days 18250 -set_serial 0xd42599c0446bdafc

#将证书和私钥导出到 PKCS12 格式的密钥库文件
openssl pkcs12 -export -in certificate.crt -inkey private.key -out cert.p12 -name cert

#生成jks
keytool -importkeystore -srckeystore cert.p12 -srcstorepass 123456789 -srcstoretype PKCS12 -destkeystore cert.jks -deststoretype JKS -deststorepass 123456789 -noprompt

#签名
apksigner sign --ks cert.jks --ks-key-alias "cert" --out signed.apk input.apk
  • 设置序列号时,序列号是最为关键的,每个车型之间可能会不同,网上的文章中能找的都是二代/三代CS75Plus,但是这个可能不适用你自己的车,首先就不适用我的车,我是自己从车机里拉取了一个系统应用然后查看的序列号,这里给列出已知的,如果不适用请自己获取
    • 二代/三代CS75Plus - 0xddb66eefd98476f3
    • 二代CS55Plus - 0xd42599c0446bdafc
  • 执行命令中间会让输入密码,这里都用123456789,方便你操作

3 连接车机

  • 车机电话拨号*#*#888,然后输入密码369875,进入工程模式,这个也是根据车型不同有所不同,可以在网上搜索,这里给出可能的已知信息

    22款逸动:*#*#888,密369875
    22款锐程 CC:*#*#888,密369875
    睿聘CC:*#518200#*
    CS35PLUS:*#20180706#*
    CS55PLUS:*#*#888,密183201
    二代55Plus:*#*#888,密369875
    CS75:*#*#456258
    一代CS75PLUS:*#201314#*
    一代CS75PLUS:*#201302#*
    二代三代CS75PLUS:*#20228888#*
    UN-K:*#20180706#
    UNI-T:"#20180706#
    23锐程Plus/22cc:*#*#888,密369875
    UN-V:"#"#888,密369875
    欧尚X70A:*#518200#*
    欧尚x5:*###388,密6020/3218
    
  • 然后点击调试工具/切换USB模式,点击里面的按钮切换usb为adb模式(最后记得切换回usb模式)

  • 双公头数据线连接电脑(网上都推荐用windows,其实mac也可以,我就用的mac,但是需要用拓展坞)

  • 电脑在命令行运行adb命令

    # 启动/查看连接设备,出现设备名称就是连接成功了,没有的就是说明没有连接成功,车机/线都可能有关系
    adb devices
    # 推送要安装的软件到车机
    adb push ./signed.apk /storage/emulated/0
    # 启动shell,需要密码,输入adb36987
    adb shell
    # 安装软件,如果车机界面显示xxx is not auth, install failed!,说明签名不对
    pm install /storage/emulated/0/signed.apk
    # 安装成功后退出shell
    exit
    
  • 然后就可以返回桌面去查看安装好的软件了

0x03 问题

1 如何获取车机系统应用的签名序列号?

# 启动/查看连接设备,出现设备名称就是连接成功了,没有的就是说明没有连接成功,车机/线都可能有关系
adb devices
# 启动shell,需要密码,输入adb36987
adb shell
# 查看系统应用列表,自己选择一个软件
ls /system/app/
# 退出shell
exit
# 拉取系统软件到本地
adb pull /system/app/WT_AppStore/WT_AppStore.apk ./sys1.apk
# 查看签名信息,从输出信息里就可以找到序列号了
keytool -printcert -jarfile sys1.apk

2 可能遇到的问题

  • 如何安装adb?如何安装配置openssl?如何安装apksigner?
    • 请根据自己的系统自行搜索或者问ai,嫌麻烦最好放弃或者去花钱