自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Google 給 7.1+ 加了段代碼,讓你覺(jué)得更安全了嗎?

開發(fā) 開發(fā)工具
近期 Android 7.1 Nougat 中,悄悄的加入了一項(xiàng)新的安全相關(guān)的功能,被稱為 “Panic Detection“ ,翻譯過(guò)來(lái)就是 “緊急檢測(cè)“ ,它的主要作用是連續(xù)監(jiān)聽用戶的多次后退按鈕事件,當(dāng)觸發(fā)到一定的臨界值的時(shí)候,就直接讓用戶返回到主屏幕。

一、前言

雖然看到這篇文章朋友,知道如何預(yù)防一些 Android 下的流氓軟件。 但是 Android 的大多數(shù)用戶,并沒(méi)有這種預(yù)防的意識(shí),基本上每隔一段時(shí)間,都會(huì)有一些 Android 上的惡意軟件而對(duì)用戶造成損失的事件報(bào)出來(lái)。

據(jù)我所知,有一些惡意軟件,會(huì)試圖獲取 Root 權(quán)限,然后劫持用戶的屏幕,讓用戶無(wú)法離開它設(shè)置的界面。當(dāng)用戶無(wú)法自由的操作自己的手機(jī)屏幕,也就無(wú)法進(jìn)行一些補(bǔ)救措施。

近期 Android 7.1 Nougat 中,悄悄的加入了一項(xiàng)新的安全相關(guān)的功能,被稱為 “Panic Detection“ ,翻譯過(guò)來(lái)就是 “緊急檢測(cè)“ ,它的主要作用是連續(xù)監(jiān)聽用戶的多次后退按鈕事件,當(dāng)觸發(fā)到一定的臨界值的時(shí)候,就直接讓用戶返回到主屏幕。

這樣的一個(gè)功能,系統(tǒng)來(lái)做其實(shí)就比較好理解了,當(dāng)你被惡意軟件劫持屏幕的時(shí)候,如果觸發(fā)了”緊急檢測(cè)”的功能,讓用戶可以回到主頁(yè)上,就有機(jī)會(huì)去卸載掉這些惡意軟件。

二、Panic Detection

Panic Detection 現(xiàn)在應(yīng)該還在測(cè)試階段,默認(rèn)情況下,它現(xiàn)在是處于被關(guān)閉的狀態(tài),所以哪怕現(xiàn)在設(shè)備運(yùn)行在 Android 7.1+ 的環(huán)境下,也并不會(huì)將這個(gè)功能開啟。

關(guān)于 Panic Detection 的一些開關(guān)配置,可以在 config.xml 文件中找到。

默認(rèn)情況下,它的值是 0 ,表示什么都不做。而一旦將它設(shè)置為 1 之后,就開啟了 Panic Detection 模式,當(dāng)觸發(fā)到它的時(shí)候,會(huì)回到主屏幕。

首先,這樣的一個(gè)功能,讓我們自己來(lái)開發(fā)實(shí)現(xiàn)的話,實(shí)際上思路大致上也差不多:

需要一個(gè)開關(guān)配置來(lái)標(biāo)記是否啟用。

需要設(shè)置點(diǎn)擊多少次觸發(fā) Panic Detection 模式。

需要設(shè)定每次點(diǎn)擊的間隔。

開關(guān)配置我們已經(jīng)了解到了,后面的思路,其實(shí)有點(diǎn)像我們比較常見,點(diǎn)擊兩次退出 App 的需求實(shí)現(xiàn)。

實(shí)際上 Google 也是這樣實(shí)現(xiàn)的。

它在 PhoneWindowManager.java 中,定義了點(diǎn)擊 Back 鍵,觸發(fā) “Panic Detection“ 的次數(shù)。

PANIC_PRESS_BACK_COUNT 設(shè)置的就是進(jìn)入 Panic 模式的 Back 按鈕點(diǎn)擊的次數(shù)。這里可以看到,配置的是點(diǎn)擊 4 次,就會(huì)觸發(fā)。

而 PANIC_PRESS_BACK_NOTHING 和 PANIC_PRESS_BACK_HONE 分別表示了在 config.xml 中配置的 config_backPanicBehavior 的值。

不管 config_backPanicBehavior 是否開啟,用戶每次點(diǎn)擊 back 按鈕,實(shí)際上都會(huì)被檢查。而當(dāng)它開啟的時(shí)候,首先,系統(tǒng)會(huì)攔截 KEYCODE_BACK 事件的按下,并檢查是否多次按下或者是一次長(zhǎng)按,然后再來(lái)判斷是觸發(fā) Panic Detection 模式,還是將事件向上傳遞給應(yīng)用程序。

這個(gè)的處理是在 PhoneWindowManager.interceptKeyBeforeQueueing() 中完成的。

可以看到,在 KEYCODE_BACK 被按下的時(shí)候,會(huì)調(diào)用 interceptBackKeyDown() 來(lái)處理。

在 interceptBackKeyDown() 方法中,會(huì)有一個(gè)點(diǎn)擊次數(shù)的計(jì)數(shù),來(lái)比較當(dāng)前點(diǎn)擊 Back 鍵的次數(shù),是否達(dá)到 PANIC_PRESS_BACK_COUNT 配置的次數(shù)。

一旦沒(méi)有達(dá)到 PANIC_PRESS_BACK_COUNT 配置的次數(shù),就會(huì)移除 MSG_BACK_DELAYED_PRESS 的消息。

而這個(gè) MSG_BACK_DELAYED_PRESS 的消息,是在 interceptBackKeyUp() 發(fā)出的,它攔截了 Back 按鍵的抬起。

從這里可以看出來(lái),它在每次 Back 鍵點(diǎn)擊的時(shí)候,都有一個(gè)超時(shí)的時(shí)間(300ms),去檢查是否是連續(xù)的點(diǎn)擊,也就是說(shuō),兩次點(diǎn)擊的間隔在 300ms 之間,4 次點(diǎn)擊,會(huì)觸發(fā) Panic Detection 模式。

300ms 的值,存儲(chǔ)在 ViewConfiguration.java 中。

接下來(lái)再看看發(fā)送出去的 MSG_BACK_DELAYED_PRESS 消息的處理。

最終會(huì)調(diào)用 backMultiPressAction() 和 finishBackKeyPress() 方法,在 finishBackKeyPress() 中,會(huì)將 Back 按鍵的計(jì)數(shù)器置為 0 。

而在 BackMultiPressAction() 中,就會(huì)去做啟動(dòng) Home 頁(yè)的操作。

launchHomeFromHoyKey() 就是真的去執(zhí)行去到桌面的邏輯了,代碼一屏截圖截不下,有興趣可以在線查閱源碼,本文中,所有代碼的截圖,都有行號(hào),可以方便查找。

在線源碼地址:

PhoneWindowManager:https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/services/core/java/com/android/server/policy/PhoneWindowManager.java

ViewConfiguration:https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/view/ViewConfiguration.java

三、小結(jié)

雖然這是一個(gè)非常小且未公開的功能,但是仍然能看出 Google 在為 Android 的系統(tǒng)安全問(wèn)題做努力。

不過(guò) Panic Detection 感覺(jué)更像是一個(gè)在 Android 系統(tǒng)中的鎮(zhèn)定劑,讓用戶可以有響應(yīng)的操作自己的設(shè)備,回到 Home 頁(yè),但是實(shí)際上,真正復(fù)雜的過(guò)程是如何卸載掉這些惡意程序。不過(guò)這個(gè)功能應(yīng)該還在測(cè)試階段,期待它的完善能讓 Android 更安全。

Panic Detection 的改動(dòng),最早是于 7 月 7 日,被 XDA Developers 的開發(fā)者 @Mishaal Rahman 發(fā)現(xiàn)的,目前也被 Google 確認(rèn)了。

【本文為51CTO專欄作者“張旸”的原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)通過(guò)微信公眾號(hào)聯(lián)系作者獲取授權(quán)】

戳這里,看該作者更多好文

責(zé)任編輯:武曉燕 來(lái)源: 51CTO專欄
相關(guān)推薦

2016-03-28 10:19:54

代碼智慧人類

2013-07-15 16:55:45

2025-04-29 02:22:00

Python技巧CLI

2018-02-06 08:31:27

比特幣網(wǎng)絡(luò)攻擊安全

2012-10-24 09:42:27

數(shù)據(jù)安全BYOD云數(shù)據(jù)

2023-09-06 12:55:42

2020-08-13 10:11:14

物聯(lián)網(wǎng)安全智能家居物聯(lián)網(wǎng)

2024-11-22 06:00:00

自動(dòng)鎖定WinForm

2018-03-22 12:44:13

2022-08-28 10:08:53

前端代碼前端

2014-02-26 15:57:41

eLTE華為

2021-03-28 16:55:11

Python工具鏈代碼

2024-10-07 11:02:08

requests編程PythonAI

2010-08-24 10:21:00

2018-05-14 17:30:25

2011-08-01 15:45:47

垃圾廣告電子郵箱安全

2022-05-09 13:37:44

VR智慧城市智慧交通

2024-05-07 13:44:57

2017-09-08 12:15:54

Python代碼Pythonic
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)