前言
熟悉长安汽车的人都清楚,除了部分车型有应用商店,要想自己安装软件就需要费一番功夫。以前的版本可以通过解锁并挂载system分区,然后使用adb root来安装应用程序,许多人称这种方法为“扎根”。然而,新版本对这部分权限进行了限制,导致无法再解锁挂载system分区。
那么为什么不直接使用adb install来安装呢?因为安装过程中会验证证书等信息,导致无法成功安装。因此,本文旨在探讨如何解除这一限制。
流程
如何定位关键点这里不再赘述。最后找到boot-ext.vdex文件,然后将其转换为dex,扔进JEB中,找到com.vecentek.security.CertificateManager包。
找到isCheckAuth这个方法,可以看到会检查指定包名是否在白名单,不在的话后面会parseSignature 解析签名,然后getSerialNumber 获取 SerialNumber 并和系统app的比对,所以这个签名序列号应该就是突破点,那我们尝试按照这个序列号生成一个签名,签一个app推进去试试。
备注:boot-ext这部分属于为辰加密,不知道这样写是长安要求还是怎样,反正这个也算留了个后手吧。
生成证书
先提取一个系统app的签名,然后打印信息瞧瞧序列号是多少。
keytool -printcert -file CERT.RSA
#生成私钥
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
#签名
java -jar apksigner.jar sign --ks cert.jks --ks-pass env:password --ks-key-alias "cert" --out "test_sign.apk" "test.apk"
此方法可以应用于长安大部分车型。
© 版权声明
THE END
- 最新
- 最热
只看作者