关于如何修改android系统system文件夹下build.prop文件参数

       最近在做一个新项目时,由于公司沟通上的一些问题,导致sdk供应商提供的版本没办法在手机上使用(因为sdk会识别设备名称,所以只能在我们公司的设备上使用),所以没有办法在手机app中使用,由于沟通成本和修改sdk的成本太高,所以公司决定让小弟修改一台小米max2手机的厂商标识(哎,苦命的程序猿),经过九九八十一难,终于是完成了更改,现将方法贡献给有需要的人。

     

adb root
adb remount
adb disable-verity
adb reboot

adb root
adb remount
adb pull /system/build.prop
//修改build.prop
........
.......


adb push build.prop /system/build.prop
adb shell chmod 0644 /system/build.prop
adb reboot

  在pull /system/build.prop之后,使用vi build.prop命令可以打开文件编辑

<think>嗯,用户现在遇到了一个问题,就是在gradle.properties中添加了systemProp.javax.net.ssl.trustStore和trustStorePassword的配置,但系统提示找不到指定路径。用户之前的问题是关于Android布局XML导致的SSL证书错误,现在可能是在尝试解决构建时的证书问题,但配置的路径有问题。 首先,我需要理解用户为什么添加这些配置。可能他们在构建过程中遇到了SSL证书验证失败,比如下载依赖时出现证书问题,所以希望通过指定信任库来让Gradle信任特定的证书。但用户提供的路径是path/to/truststore,这显然是一个示例路径,实际使用时需要替换为真实的路径。系统找不到路径的错误提示说明Gradle在访问这个路径时失败了,可能路径不正确或者文件不存在。 接下来,我应该考虑用户可能犯的错误。常见的问题包括:路径使用了绝对路径但格式错误,或者相对路径的基准目录不对;信任库文件不存在,或者文件名拼写错误;或者可能使用了错误的密码。此外,用户可能对信任库的概念不太清楚,不知道如何生成或获取正确的信任库文件。 需要分步骤解释解决方案。首先,用户需要确认trustStore文件的实际路径是否正确。可能需要指导用户如何正确指定路径,比如使用绝对路径,或者在项目根目录下使用相对路径。其次,要确保信任库文件确实存在,并且包含正确的证书。如果用户没有信任库,可能需要指导他们如何生成或导出所需的证书到信任库中,比如使用keytool命令。 另外,可能需要解释信任库和密码的作用,让用户明白这些配置的意义。如果用户是在公司环境中,可能需要联系IT部门获取正确的信任库和密码,或者检查是否需要导入特定的CA证书。 还可能存在其他替代方案,比如直接更新系统的JVM信任库,但这样会影响所有应用,而通过Gradle的systemProp配置更局限于当前项目。如果用户只是临时解决,可能还可以建议忽略SSL验证(虽然不推荐),但用户之前的问题已经提到了生产环境必须使用正规证书,所以可能需要强调正确配置信任库的重要性。 最后,需要检查用户是否在正确的文件中添加了配置,即项目根目录下的gradle.properties,而不是其他位置。同时,提醒用户修改密码,因为示例中的changeit是默认密码,可能不安全。 总结下来,回答需要包括: 1. 确认路径的正确性和文件是否存在。 2. 指导如何正确设置路径,包括绝对路径和相对路径的例子。 3. 解释信任库的作用和生成方法。 4. 提供检查步骤和常见错误。 5. 可能的替代方案和注意事项。</think>您遇到的`系统找不到指定路径`错误是由于Gradle无法定位信任库(truststore)文件引起的。以下是具体解决方案和分步说明: $$ \text{错误根源} = \frac{\text{无效路径}}{\text{文件不存在}} + \text{配置参数错误} $$ **一、路径修正方案** 1. **绝对路径写法**(Windows示例): ```properties systemProp.javax.net.ssl.trustStore=C:\\dev\\android_truststore.jks ``` 2. **相对路径写法**(推荐): ```properties # 假设信任库文件放在项目根目录的certs文件夹 systemProp.javax.net.ssl.trustStore=./certs/android_truststore.jks ``` **二、信任库文件准备步骤** 1. **生成信任库文件**(使用JDK的keytool): ```bash keytool -import -alias myserver -file server.crt -keystore android_truststore.jks -storepass changeit ``` 2. **文件存放建议**: - 在项目根目录创建`certs`文件夹 - 将`.jks`文件与`gradle.properties`同级存放 **三、验证配置有效性** ```groovy // 在build.gradle中添加验证任务 task checkTrustStore { doLast { println "信任库路径: " + System.properties['javax.net.ssl.trustStore'] println "文件存在: " + new File(System.properties['javax.net.ssl.trustStore']).exists() } } ``` 运行验证:`./gradlew checkTrustStore` **四、常见错误排查表** | 现象 | 解决方案 | |-------|---------| | `java.io.IOException: Keystore was tampered with` | 检查密码是否与生成时一致 | | `java.security.cert.CertificateException` | 确认导入的是服务器证书而非私钥 | | `No such file or directory` | 使用`pwd`命令确认当前工作目录 | **五、替代方案(临时测试)** ```gradle // 在build.gradle中全局禁用证书验证(⚠️仅限测试环境) allprojects { gradle.projectsEvaluated { tasks.withType(Test) { systemProperty "javax.net.ssl.trustStoreType", "Windows-ROOT" } } } ``` **注意事项**: 1. 路径中的反斜杠需要转义(Windows用`\\`,Linux/Mac用`/`) 2. 信任库文件建议使用JKS格式,Android Studio默认支持 3. 实际密码应替换`changeit`,并通过环境变量管理敏感信息 建议先通过`openssl s_client -connect yourdomain.com:443`命令获取服务器证书链,再使用`keytool -printcert -file server.crt`验证证书指纹是否匹配。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值