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


    关键点:

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

    从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
    版权声明:本文为博主原创文章,转载请附上博文链接!

    (之后再补上截图)

  • 相关阅读:
    0325JavaScript
    0322css样式表,选择器
    0320表单
    0313函数
    0312数组
    0311类
    0309笔记整理
    进制转换
    Xcode快捷键大全
    Android LearningNotes
  • 原文地址:https://www.cnblogs.com/Entr0py/p/9675061.html
Copyright © 2020-2023  润新知