安卓7.0及以上用户证书导入的问题

时间:2024-03-03 18:03:43

关键点:

在经过我几个小时的折腾后,我终于找出了问题所在。在进一步探讨之前,我向大家推荐两篇优秀的文章,这也是帮我解决该问题的关键信息:

从Nougat开始,Android更改了对用户安装证书的默认信任行为。这意味着,从sdcard安装Burp CA将无法拦截应用流量。除非另有说明,否则应用程序将只会信任系统级别的CA。

---------------------------------------------------------------------------copy from http://www.qingpingshan.com/rjbc/az/371473.html

原因:

  安卓7.0及以上系统对于证书的安全策略做了修改,用户证书只能用于代理浏览器的流量,而应用是不会信任这些证书。【ios和安卓<7.0的版本没有此问题】

  解决方案:

    1、root手机将证书导入到根证书目录下

    2、换低版本安卓系统

操作流程

  1、导出并转换Burp CA

  以DER格式导出CA证书。我将它保存为cacert.der

  将DER转为PEM格式证书,并且文件名为subject_hash_old值并以.0结尾。

  当OpenSSL 版本<1.0时,文件名为subject_hash。

  使用openssl将DER转换成PEM,然后输出subject_hash_old并重命名该文件:

  openssl x509 -inform DER -in cacert.der -out cacert.pem  
  openssl x509 -inform PEM -subject_hash_old -in cacert.pem |head -1  
  mv cacert.pem <hash>.0

  2、将证书复制到设备

    我们可以使用adb来复制证书,但由于必须将其复制到/system文件系统,所以我们需要将它重新挂载为可写。作为root用户,adb remount非常简单。

http://entropyblog.com

    adb root  
    adb remount  
    adb push <cert>.0 /sdcard/

    进入adb shell将文件移动到/system/etc/security/cacerts,并将文件权限修改为644:

    mv /sdcard/<cert>.0 /system/etc/security/cacerts/  
    chmod 644 /system/etc/security/cacerts/<cert>.0

  3、reboot重启设备

remount of /system failed: Read-only file问题:

1.adb disable-verity 会出现 

Verity disabled on /system 
Now reboot your device for settings to take effect 
2.adb reboot重启设备. 
然后再remout就可以成功了.

可能出现的情况: 
但是有时候终端不能识别adb disable-verity命令,一个可能的原因是adb版本太低了,adb version查看一下版本,然后更新到最新就好了.

 

只知道执行了adb disable-verity, adb reboot之后就能够remount成功,但是adb disable-verity具体做了什么呢?
官方给出adb disable-verity的解释是这样的:disable dm-verity checking on USERDEBUG builds
大致意思就是不使用dm-verity验证userdebug版本.可以理解为userdebug版本有些system分区被verity标识.

所以会出现上述错误是因为某些分区被系统标识,必须要验证数据签名,我们只需要忽略验证就行了.

上面可以看到签名是否需要验证主要是由dm-verity决定的,那它又做了什么呢?
它的作用和工作流程可以移步http://blog.csdn.net/u011280717/article/details/51867673

 

adbd cannot run as root in production builds的问题

手机没有root权限

 

 

 

 

解决小米Note adb调试无法发现设备

在win7电脑上做安卓开发,adb时小米note始终发现不了设备,主要还是驱动问题,解决步骤如下:

 

1.确保电脑上已经安装小米note的驱动:

   1.1下载小米助手并安装,下载地址:http://www.pc6.com/softview/softview_88819.html

   1.2 在把手机连入电脑前,确保手机未开启调试模式,否则小米助手是木有办法发现设备的,切记切记~~

    1.3打开电脑上的小米助手,用USB线连接手机和电脑,驱动会自动安装好

 

2.开启手机的调试模式

   1.1 先调出手机上的开发者模式:点“设置”-“关于手机”,然后在MIUI版本那一栏上快速点击几下。

   1.2开启手机上的调试模式:完成上一步骤后,回到主页面,再点击“设置”-“其他高级设置”-“开发者选项”-“USB调试”       

1.3开启USB调试模式后还要enable端口:确保手机是连接在电脑上,然后在拨号界面输入 *#*#717717#*#* ,看到toast提示“Diag USB port enable”则表示开启成功

 

 

如果还不奏效,请检查你是不是拿了根电源线。。。

 

3.在电脑命令窗口中adb kill-server,然后adb start-server,最后adb devices,就可以看到设备啦~

 

android在使用adb 命令时有时会发现设备的状态是offline,我的神呀,这怎么让我们调试呢。必须解决这个问题。
解决方式如下:
以下方法请确保你的设备处于调试模式下。
方法一:执行 #adb kill-server
                        #adb start-server
                       #adb devices
看看设备是否还是处于offline状态,如果是,请尝试方法二
方法二:
                   重新启动设备,开机后,执行:
      #adb devices
如果设备还是offline
请看方法三
方法三:
           重启你的计算机吧。
如果还不好用,goto方法二。
---------------------
作者:weidawei0609
来源:CSDN
原文:https://blog.csdn.net/weidawei0609/article/details/7206223
版权声明:本文为博主原创文章,转载请附上博文链接!

 

 

(之后再补上截图)