❶ 為什麼 android 截屏需要 root 許可權
android 截屏為什麼需要root許可權?
【主要原因】
andorid系統在調用截圖功能的時候一般會調用命令的形式去截屏,而這些命令在普通用戶許可權下是沒辦法執行的,必須是在root用戶許可權下才能進行截屏。
【主要實現方式和原因】
傳統截屏方式,採用讀取 framebuffer 的方式實現截屏,需要root許可權,Android 3.0以前android sdk提供的截屏方式。
SurfaceFlinger 方式截屏,在 Android 4.0 里提供的一種解決方案,改方案需要系統級許可權READ_FRAMEBUFFER 許可權,由於是系統許可權也必須是root的許可權下才可以進行截屏
由於目前大多數android開發的基礎版本都是在4.0的基礎上開發,所以會看到很多第三方的截屏軟體截屏需要在root的許可權下才能進行截屏。
【另外】
並不是所有的截屏都必須需要root的許可權,其實在眾多截屏方案中還有一種截屏方案不需要root許可權也可以截圖。
主要實現方式
Android 截屏 -- ddms方式。
實現原理
主要是通過執行adb shell命令的形式進行截屏。而調用這些命令會實際上也要系統許可權,但是這個方法特殊的地方就在他其實是通過adb shell進行截圖的時候把命令個了設備上的 adbd 守護進程,而這個進程間接的啟動了screencap,也就是開啟了上面的方法二中的SurfaceFlinger 截屏方式的後段截屏步奏,所以導致不需要root許可權進行截屏。
其中:
adbd 是以 shell 用戶執行的, 而系統為 shell 用戶分配 graphics 組,所以 shell 用戶是有許可權調用 surfaceflinger 的介面的。
【最後】
推薦使用不需要root許可權截屏的方案。
❷ 華為手機為什麼一些應用不允許截屏會出現涉嫌隱私,不允許截屏,錄屏顯示黑屏,該如何解決
如果您的手機在第三方應用界面無法截屏或錄制視頻,出現以下現象:
1.在應用界面錄制視頻,結束錄制後在圖庫中打開視頻,顯示黑屏,有聲音無圖像,無法查看。
2.在應用界面截圖時提示「當前界面涉及隱私內容,不允許截屏」。
3.截屏時頁面無顯示,菜單欄顯示無法捕獲屏幕截圖。
該現象是由於部分應用自身考慮到客戶信息安全,針對應用界面禁止截屏,錄屏,此為應用本身設計如此。如果您有其他疑問,建議您向相關應用開發團隊咨詢反饋。