制作第三代长安75p安装三方软件
前言
三代长安75p的车机系统是 长安与腾讯联合且基于安卓自研的 梧桐车联系统。

通过一些特殊方式,我打开了车机的系统信息真身

要想将 APK 文件成功的安装上车机,我们必须对APK进行特殊签名!
重签名
制作签名证书(JKS)
根据hcf666拆解底层代码得知,符合某种特定规则值得是 签名序列号必须是ddb66eefd98476f3
此系统极为封闭,默认情况下,不允许安装除了车机本身应用商店之外的三方软件,本身内置的商店里的软件少不说 版本还低(比如高德)且不支持升级,只能等待整个车机系统连带升级,遗憾的是他们通常好几年不推送升级车机系统!。

const appList = [
{
name: '阿哈路书',
package: 'com.aha.autocar.vehicle'
}, {
name: '阿基米德',
package: 'com.ajmide.car.a'
}, {
name: '百度网盘',
package: 'com.baidu.netdisk.car'
}, {
name: '车载大碟',
package: 'com.thunder.disc'
}, {
name: '俄罗斯方块',
package: 'com.wt.tetris'
},{
name: '樊登读书',
package: 'io.dushu.car'
},{
name: '凤凰FM',
package: 'com.ifeng.ecarxfm'
},{
name: '华云天气',
package: 'com.hymz.weather'
},{
name: '极速狂飙',
package: 'com.tinnove.speedrun'
},{
name: '减压神器',
package: 'com.thunder.master'
},{
name: '酷狗音乐',
package: 'com.kugou.android.auto'
},{
name: '酷我音乐',
package: 'cn.kuwo.kwmusiccar'
},{
name: '乐听头条',
package: 'com.leting.car'
},{
name: '芒果TV',
package: 'com.mgtv.auto'
},{
name: '咪咕视频',
package: 'cn.cmvideo.car.play'
},{
name: '栖云异梦',
package: 'com.tantrum.qyym'
},{
name: '搜狐视频',
package: 'com.sohu.automotive'
},{
name: '汤姆猫跑酷',
package: 'com.outfit7.talkingtomgoldrun.car.changan'
},{
name: '汤姆猫总动员',
package: 'com.outfit7.mytalkingtomfriends.car.changan'
},{
name: '听见广播',
package: 'cn.cbct.seefmcar'
},{
name: '喜马拉雅',
package: 'com.ximalaya.ting.android.car'
},{
name: '喜马拉雅儿童',
package: 'com.ximalaya.ting.android.carkids'
},{
name: '消灭病毒',
package: 'com.wt.drmario'
},{
name: '消灭泡泡',
package: 'com.tinnove.bubblepop'
},{
name: '晓悟互动小说',
package: 'com.qiwu.watch'
},{
name: '优酷视频',
package: 'com.youku.car'
},{
name: '云听',
package: 'com.edog.car'
},{
name: '中国象棋',
package: 'com.wt.chinesechess'
},{
name: '中国移动云盘',
package: 'com.chinamobile.mcloudcar'
},{
name: '中华万年历',
package: 'cn.etouch.ecalendar.chancar'
},{
name: '最美天气',
package: 'com.icoolme.car.weather'
},{
name: 'WiFi万能钥匙',
package: 'com.snda.wifilocating.car'
}
]
export default appList;
本文要解决的:就是如何突破系统限制,安装三方软件,不用等待车机原生的更新推送!
分析车机封锁咱们安装三方软件的猥琐策略:
- 隐藏安装包:无论是车机上的百度网盘还是文件管理中的USB设备,你都看不到里边自己的安装包APK文件。
- 禁止安装三方包:哪怕你想办法让找到了安装包,在你安装的那一刻,车机就会提示你:
xx is not auth, install failed!
突破【禁止安装三方包】
即便你已经想办法让车机找到了安装包并且安装,但车机依然拒绝为你安装。
因为车机底层代码它这么写的,不过好在内部员工留了后门,只要安装包符合某种规则签名它就认为是自己人,就允许安装。
感谢hcf666的发现。
根据hcf666拆解底层代码得知,符合某种特定规则值得是 签名序列号必须是ddb66eefd98476f3
所以我们拿到apk软件包,按照这个签名规则 重新二次签名即可。
下边就是一个二次签名apk,伪装自己人的步骤(有些人将其称为白名单)。
配置java环境
签名和生成jks要用
不想说,网上资料太多了。
这就代表成功了

配置安卓环境
安装安卓环境,既sdk(我这里是通过安装andriod studio 来安装的安卓,如果你不想安装安卓ide 还可以使用sdkmanager来安装这些sdk)
然后将安卓sdk中的build-tools里的apksigner也配置到环境变量中,方便后续使用,比如我的
C:\Users\Administrator\AppData\Local\Android\Sdk\build-tools\34.0.0

这样即为成功

配置openSSL
签名的时候用,这里有教程
这样即为成功

二次签名
#生成私钥
openssl genrsa -out private.key 2048
#生成v1证书
openssl req -new -key private.key -out csr.csr -subj "/emailAddress=auto_release@auto-pai.com/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 0xddb66eefd98476f3
#将证书和私钥导出到 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
其中 input.apk为原始的官方安装包,signed.apk为生成的二次签名后的包,这个包即能被车机安装。
注:通过这种方式安装到车机上的是不可卸载的,如需卸载需将车机恢复出厂设置
卸载软件
由于车机系统的限制,无论是内置的,还是通过以上办法安装的(也会被系统识别为内置)。
均无法被卸载 xx(软件报名) is auth app,not allow delete!
但是我们可以利用adb冻结,不过有时候桌面图标可能还在,但是已经无法使用了
pm disable-user xx(软件包名)
如果我们再想使用的时候,解冻即可pm enable-user xx(软件包名)
其他
如果自己搭建【转换白名单应用】环境过于困难,可以使用我写的免费在线转换平台, https://car.dingshaohua.com
目前只在我的第三代cs75p上验证成功,其他我也没那么多车。
更多请加群


浙公网安备 33010602011771号