安卓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
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

 

 

(之后再補上截圖)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM