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

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

此系统极为封闭,默认情况下,不允许安装除了车机本身应用商店之外的三方软件,本身内置的商店里的软件少不说 版本还低(比如高德)且不支持升级,只能等待整个车机系统连带升级,遗憾的是他们通常好几年不推送升级车机系统!。

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!
突破【隐藏安装包】
思路:通过adb,使用电脑将apk推送到车机上,然后再使用adb将其安装到车机上。
开启车机ADB
ADB是电脑沟通车机系安卓统底层的方式,所以需要车机开启此功能。

电脑连接车机
电脑下载并打开adb软件,连接车机。
输入命令行并执行 adb devices
看到如下,即可代表成功连接。

电脑推送并安装软件到车机
推送
在电脑终端输入命令行并执行:将电脑本机下载好的安装包 推送 到车机
adb push ./es.apk /storage/emulated/0
为什么不直接adb install 安装?---因为车机屏蔽了次方式,会提示输入密码后方可安装。
为什么不推到车机别的位置?---因为你没有root权限,所以车机初了这个位置外,不允许你复制到其它文件夹,会提示permission denied。
安装
在电脑终端输入命令行并执行:安装已经推送到车机的apk
注意:pm install xx.apk实际上任何软件都可以(这里只是拿es.apk举例),但必须是伪装后的软件(后边讲)
adb shell
提示输入密码 adb36987
pm install /storage/emulated/0/es.apk
安装成功后,车机桌面上就出现了这个软件

这里安装的es.apk值得是es文件管理器软件,我在网上随便找了一个下载的,
打开es文件管理器(其实任何文件管理器都可以),都可以看到你设备上(比如u盘)的安装包apk文件了

突破【禁止安装三方包】
即便你已经想办法让车机找到了安装包并且安装,但车机依然拒绝为你安装。
因为车机底层代码它这么写的,不过好在内部员工留了后门,只要安装包符合某种规则签名它就认为是自己人,就允许安装。
感谢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上验证成功,其他我也没那么多车。
更多请加群

第三代长安75p安装三方软件的更多相关文章
- 移动iptv安装三方软件
1.思路: 分为硬件和软件. a.硬件是ttl直接上串口,弄得比较复杂,且容易损坏盒子,先不考虑 b.软件:抓包获取iptv的请求数据,将移动光猫的iptv出口接到交换机上,电脑和盒子接入到同一个交 ...
- Mac安装三方软件
安装提示“xxx软件已损坏,打不开,您应该将它移到废纸篓”的提示,其实并不是软件本身有问题,而是Mac系统的一个安全机制问题步骤1:Spotlight搜索(快捷键:command+空格或右上角搜索的符 ...
- 单机静默安装GI软件并创建ASM实例和ASM磁盘组
环境:RHEL 6.4 + Oracle 11.2.0.4 需求:单机静默安装GI软件并创建ASM实例和ASM磁盘组,为后续迁移数据库文件到ASM做准备 1. 安装配置GI软件 2. 创建ASM实例 ...
- Linux删除apt-get安装的软件
我们都知道安装软件最简单的方法是apt-get install,但是卸载就不常用了,如何卸载呢?1.sudo apt-get remove xxxxxsudo apt-get autoremove2. ...
- Linux 中如何卸载已安装的软件(转载)
Linux 中如何卸载已安装的软件. Linux软件的安装和卸载一直是困扰许多新用户的难题.在Windows中,我们可以使用软件自带的安装卸载程序或在控制面板中的“添加/删除程序”来实 ...
- 安装ubuntu和安装ubuntu后要安装的软件列表
安装ubuntu 老毛桃进入win pe修复启动项 在win pe下面制作ubuntu的安装盘,只用的软件是ultraISO 参考博客下面的分区的那篇文章 http://jingyan.baidu. ...
- ubuntu如何卸载apt-get install安装的软件
1.sudo apt-get remove xxxxx sudo apt-get autoremove2.对于用命令sudo aptitude install xxx安装的软件可以用sudo apt ...
- Linux 中如何卸载已安装的软件
Linux 中如何卸载已安装的软件. Linux软件的安装和卸载一直是困扰许多新用户的难题.在Windows中,我们可以使用软件自带的安装卸载程序或在控制面板中的“添加/删除程序”来实现.与其相类似, ...
- 如何在redhat下安装办公软件(openoffice)
在redhat的client版本中自带有办公软件libreoffice,而在server版的redhat中却没有自带的办公软件,那么,如何在redhat的server版下安装办公软件呢? 方法一:配置 ...
- 安装PHP软件
安装PHP软件 ① tar -zxvf php-5.2.5.tar.gz ② cd php-5.2.5 ③ 使用configure配置安装信息(最重要) ./configure \ --prefix= ...
随机推荐
- docker发布简单python服务
进入机器创建一个目录mkdir dockerbuild1.编写简单flask代码vi flaskapp.pyfrom flask import Flaskimport os app = Flask(_ ...
- PHP传递参数(跨文件)的8种常见方法
以下是 PHP 中跨文件传递参数的 8 种常见方法,按场景和安全性分类整理,附详细说明和示例代码: 一.超全局变量(适合请求间数据共享) 1. $_GET / $_POST 用途:通过 URL 或表单 ...
- emmy断点调试
package.cpath = package.cpath .. ';C:/Users/Administrator/AppData/Roaming/JetBrains/IntelliJIdea2021 ...
- hybrid应用自动化
一.hybrid介绍 hybrid是一种混合app,将h5页面嵌入native原生页面. 基于uiautomator+chromedriver.native部分走uiautomator,web部分走c ...
- 解决get和post请求提交数据中文乱码问题
目录 get请求乱码 乱码案例 解决办法 方法一:进行转码 方法二:修改tomcat中conf/server.xml post请求乱码 解决办法:在取参数之前设置编码格式 get请求乱码 Tomcat ...
- SpringBoot项目创建的三种方式
目录 1 通过官网创建 2 通过IDEA脚手架创建 2.1 IDEA新建项目 2.2 起Group名字,选择Java版本,点击Next 2.3 选择Web依赖,选择Spring Web,确认Sprin ...
- 代码随想录第十天 | Leecode 232. 用栈实现队列、Leecode 225. 用队列实现栈、 Leecode 20. 有效的括号、Leecode 1047. 删除字符串中的所有相邻重复项
Leecode 232. 用栈实现队列 题目链接:https://leetcode.cn/problems/implement-queue-using-stacks/submissions/ 题目描述 ...
- 【安装】Ubuntu 20.04下快速安装ROS2 Foxy
参考博客 ROS2安装 有的地方原博主打错了,还没改过来,我按我自己的改好了. 有的地方比如github和raw.githubusercontent.com访问不了,我替换成能用的镜像源了,只求一键复 ...
- AI编译器及TVM整体架构
虽然之前也依据tvm官方文档写过一篇关于TVM架构的博客,但总感觉属于一种身在此山中的感觉(偏向于TVM实现的各个模块),并没有一览众山小的即视感(对框架的整体理解). 因此,今天再次请求出战... ...
- AI 极客低代码平台快速上手 --生成Python代码
1.侧栏菜单选择"Python": 点击代码区右上角的"代码魔法棒"图标,在弹出的确认面板中点击"确认"按钮,一秒生成基于FastApi最新 ...