安卓7.0及以上用户证书导入的问题
關鍵點:
在經過我幾個小時的折騰后,我終于找出了問題所在。在進一步探討之前,我向大家推薦兩篇優秀的文章,這也是幫我解決該問題的關鍵信息:
- https://serializethoughts.com/2016/09/10/905/
- https://android-developers.googleblog.com/2016/07/changes-to-trusted-certificate.html
從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>.02、將證書復制到設備
我們可以使用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>.03、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調試無法發現設備
2015年05月06日 14:59:53?yxq408576080?閱讀數:14991?標簽:?Androidusb更多 個人分類:?Android在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
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
?
?
(之后再補上截圖)
轉載于:https://www.cnblogs.com/Entr0py/p/9675061.html
總結
以上是生活随笔為你收集整理的安卓7.0及以上用户证书导入的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 玩游戏显示计算机丢失,win7玩游戏提示
- 下一篇: radan7中文使用手册