關鍵點:html
在通過我幾個小時的折騰後,我終於找出了問題所在。在進一步探討以前,我向你們推薦兩篇優秀的文章,這也是幫我解決該問題的關鍵信息:android
從Nougat開始,Android更改了對用戶安裝證書的默認信任行爲。這意味着,從sdcard安裝Burp CA將沒法攔截應用流量。除非另有說明,不然應用程序將只會信任系統級別的CA。ios
---------------------------------------------------------------------------copy from http://www.qingpingshan.com/rjbc/az/371473.htmlshell
緣由:瀏覽器
安卓7.0及以上系統對於證書的安全策略作了修改,用戶證書只能用於代理瀏覽器的流量,而應用是不會信任這些證書。【ios和安卓<7.0的版本沒有此問題】安全
解決方案:post
一、root手機將證書導入到根證書目錄下ui
二、換低版本安卓系統google
操做流程spa
一、導出並轉換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
二、將證書複製到設備
咱們可使用adb來複制證書,但因爲必須將其複製到/system文件系統,因此咱們須要將它從新掛載爲可寫。做爲root用戶,adb remount很是簡單。
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
三、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權限
在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
版權聲明:本文爲博主原創文章,轉載請附上博文連接!
(以後再補上截圖)