安卓USB調試能提供多大的許可權?

我在天津站和北京西站看到了一種充電設施,大家看圖。

安卓開USB調試過後能連電腦備份很多數據,還能root。我想問USB調試能提供多少許可權,然後這種充電隱患有多大。


USB調試許可權極大,基本上接近於用戶親自操作手機能做到的所有事情。

所以,非開發人員強烈不建議開啟該許可權。

換句話說,凡是哄騙,誘導你開啟該許可權的行為,一律是耍流氓


這年代流氓都掛個牌子寫著我是流氓了


安卓的版本和手機生產廠家不同,許可權略有不同,不過大致上可以:

在你手機上安裝應用APP;

複製你手機里的大部分數據和文件;

重置手機的鎖屏密碼;

有一定概率獲取手機的最高許可權;

為了充個電,把家裡的大門鑰匙、汽車鑰匙和保險箱鑰匙都交出去了,值得嗎?


還記得360的雷電OS嗎?

不知道的人請知乎搜索:雷電OS,你會回來點贊的~


反編譯了一下暢充助手的源碼,就一個Activity,代碼也非常簡單粗暴:

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle paramBundle) {
super.onCreate(paramBundle);
ComponentName localComponentName=new ComponentName("com.android.settings","com.android.settings.DevelopmentSettings");
Intent localIntent=new Intent();
localIntent.setComponent(localComponentName);
localIntent.setAction("android.intent.action.View");
startActivity(localIntent);
finish();
}
}

就是直接跳轉到設置中的開發者選項。

而一旦打開開發者模式,就可以在充電過程中往用戶手機中安裝App,獲取用戶手機中的通訊錄等隱私信息。

目前除了安裝簡訊木馬,獲取用戶文件之外,還有一個可能泄露隱私的地方在於截圖,即先用adb shell screencap的方法進行截圖,再通過adb pull將截圖文件導出

那它是如何盈利的呢?

我就放一個傳送門:火車站的暢充靠什麼盈利? - 生活

充完電之後,百度全家桶估計就在你手機裡面了。

p.s:我覺得這個問題可以放到"百度做了哪些惡"這個話題下了。


手機充電是有PM(power manager)晶元控制,通過第三方app達到快充的目的理論上上是不可行的,像oppo,華為等都是使用的專門的快充方案(包括快充晶元,充電演算法,專用電源適配器)。

像這種揚言安裝app能實現快充,並且需要信任(ios)或調試模式(andriod)許可權的,基本能確定是釣魚了,用過信任程序之後獲取用戶隱私數據,攔截各種簡訊,安裝病毒等。

當然也不排除某些第三方app確實能提升充電速度,例如充電時將手機屏幕亮度調暗,縮短熄屏時間等,可以通過減少電量消耗從而達到提高充電效率的目的,但作用微乎其微(樂觀估計提升不超過5%)。

所謂:為了一點微乎其微的充電速度冒如此大的風險(最壞的情況:銀行卡被非法體現,親友被詐騙),樓主可以自己衡量。

回答樓主的問題:調試模式會打開哪些功能的許可權:

以早期華為手機為例:(僅列出和安全相關的功能)

1.安裝卸載應用(非系統應用)

2.讀取用戶數據,包含電話,簡訊,應用程序緩存,照片,郵件等。

3.重置手機

4.獲取所有手機感測器數據(包含gps)

5.手機常規操作(屏幕點擊,物理按鍵,滅屏,關機等)

6.獲取手機emsi號,手機號碼等信息

=========

經過評論裡面的提醒,我是理解錯題了。

題主提問是在路邊充電樁上充電安裝app要求許可權,我理解成安裝app在自己家充電了。

雖然理解錯題了,但結論是一樣的:極度危險,最好莫試!

這種路邊攤的情況確實可以通過限流來讓你安裝app來達到快充的目的,正如評論裡面說的,安裝了app給你1A,沒安裝給你100mA,但這種可以通過安裝普通app來實現,根本不涉及許可權問題,你額外要求許可權那就危險係數飆升了。

就像小區門口賣食用油,雖然比超市便宜10塊錢,但要你刷卡才行,而且不是那種正規的手持pos機,是刷一個黑盒子,請問你敢買嗎?


理論上,USB調試提供的是Shell許可權,而不是Root許可權。當然不排除某些內核默認向Shell授予了Root許可權。

但是即使是Shell許可權,也比普通用戶的許可權高出不少,問題中的例子就是使用adb push或adb install給系統安裝應用,並且可以安裝在/system下,給卸載帶來困難。

如果系統已經安裝了Xposed框架的話,我自己寫了一個小程序,可以讓ADB一直處於連接狀態而無法完成應用安裝:攔截 ADB 安裝(com.aviraxp.preventadbinstall)_0.2_Android應用,代碼也已經開源:GitHub - aviraxp/PreventADBInstall


充完電人家就變你爹了


adb reboot recovery

adb sideload 第三方內核. zip

adb reboot

adb install xxkernelmanager.apk

然後應該就可以讓你手機的電池炸掉了。


可悲的並不是這個東西的存在,而是很多人不關心這些。每次回家看到爸媽的手機電腦滿屏的垃圾信息、推送,他們都覺得無所謂


usb調試的默認許可權可以看到你能看到的所有東西,改寫你能改寫的所有東西,還可能可以su(取決於你的su會不會通知你了),還有可能在你沒有su的情況下給你弄個su上去。就是說,「所有你能幹的,usb調試都能幹」。

然而插usb的風險不僅在於usb調試,還有「bad usb」。如果你的手機支持otg的話,那麼插上線電腦可以把自己虛擬成一個usb設備,就算你沒有開usb調試照樣可以讓你中招。


1. 安裝應用

adb install xxx.apk

就這麼一句話,你的手機里就多了個應用,同理,想要刪除競爭軟體也是分分鐘的事情

2. root許可權

如果你的手機已經root,且沒有安裝SuperSU之類的root許可權管理軟體的話,那麼

adb shell su

或者

adb root

就可以獲取完整的root許可權,然後鬼知道系統會經歷什麼

3. 個人信息泄露

通訊錄什麼的,也不過是個資料庫文件而已,隨時隨地可以被pull出來,而且不需要root許可權

此外還有可能被植入病毒/木馬等等,總之,插上陌生設備前先把USB調試關掉!以及沒事別root,root了之後記得安裝許可權管理軟體!千萬別root後裸奔!


其實買個充電寶的成本比這個小多了


出門自帶充電寶的飄過……


你猜他們幹了什麼?線下APP分發。

你猜他們和誰合作了?嘿嘿嘿


有許可權後能截圖截視頻 用程序模擬觸摸操作

也就是人眼人手能做的就能做

-----------

在涉外場所出現的 只有中文標識的東西最好少用


先加一句,任何拋開前提就扯結果的都是耍流氓。

打開調試,同時授權之後可以執行所有的adb shell命令,完整的命令列表參考Google的文檔:https://developer.android.com/studio/command-line/shell.html,熟悉Android,知道什麼是shell的參考這個地址就足夠了。

1、怎麼開啟adb?

pc端要有sdk里附帶的platform-tools工具包,然後操作系統安裝了連接手機所必須的驅動,然後手機端打開調試,同時在連接電腦後選擇授權信任目標,然後pc端就可以執行上面文檔里的所有adb shell commands了。所以必須條件為:外部設備需要有platform-tools,然後把手機和外部設備連接起來(通常就是usb),然後手機端在開發者模式中打開調試,然後選擇授權外部設備。

幾個條件缺一不可,尤其是後兩步。簡單說就是你的usb可以任意連接任何設備,只要你不開啟調試,或者給外部設備授權就完全不需要擔心。

2、adb是否是Android的安全漏洞?

不是。adb全稱:Android Debug Bridge,從名字就看出來,這個是方便開發者調試app用的,只不過adb附帶的功能可以實現安裝app,刷機之類的一些手機內無法實現的功能。對於絕大部份用戶來說無需開啟調試。我個人是實現找不到普通用戶要開啟調試的理由。

3、關於root狀態的情況

root後稍微複雜點,因為root後,在手機上的授權過程可以實現不給用戶彈窗執行給充電設備授權的情況,然後就很難判斷外部設備是否被賦予了執行adb shell commands的許可權,所以root後如果確認自己的root管理器是安全的不會給亂七八糟的app授權root,不會出現有授權root許可權的app利用root許可權,直接給連接上的充電設備授權adb命令的話,那也無需擔心root帶來的執行adb shell的風險(以經驗判斷,通過root給外部充電設備賦予adb許可權的可能性很小)。

4、簡單總結:

對於從來沒開啟過開發者模式的用戶來說完全無需擔心usb連接這些充電設備後,泄漏數據,或者被充電設備執行adb shell所包含的所有命令的問題。

開啟了開發者模式,只要連接這些充電設備後,彈出要求授權的窗口的時候沒有給設備授權也完全無需擔心adb shell的問題。

開啟了開發者模式,同時連接充電設備後,彈出的授權提示,你也選擇了授權,那充電設備就可以執行https://developer.android.com/studio/command-line/shell.html,這個文檔里包含的所有adb shell命令。包括,但不限於例如:讀寫手機內的文件數據,安裝卸載app,打開指定app,發送屏幕點擊事件等等行為。

補充:關於暢充要求用戶打開調試,我以小人之心揣度下,暢充完全就是為了幹壞事。


USB調試許可權很大,可以看下雷電os的流氓案例。不過目前MIUI對USB調試許可權加了很多限制,比如安全中心的USB安裝管理,USB調試安全設置,基本可以使安全性大大增高,還有通過USB調試實現快充不科學,主要是硬體配合比較多吧


1%用戶表示不服


答案是許可權很大,非常大,比你想像的還要大很多

樓上答主回答的很好了,但是我還是和大家嘮嘮,以我的手機為例

包括且不限於

1,安裝APP(這個對於開發很贊啊,鬼知道我用模擬機測試經歷了什麼==)

2,可能獲取ROOT許可權

3,獲取用戶通訊錄及應用的信息

4,訪問操作手機文件

5,跳過及修改鎖屏密碼

我用的VIVO X3l手機(別吐槽,我上大學時小姨買了送我的==),平時用於Android開發測試時必須通過VIVO手機助手來操作(如下圖),只需打開USB模式,你的通訊錄、信息、文件,通通就都在電腦上可以操作了,也就是說你在這種充電樁充電的時候就在裸奔了。我是不太信這種充電樁打開USB只是為了更好的快充的!你的隱私什麼的可能已經被全部竊取。

這也是豌豆莢這種同步工具需要USB調試的原因,一旦你開啟「USB調試」設置,相當於你放棄了對於手機一半的控制權,91手機助手、豌豆莢等工具可以直接獲取用戶的應用以及通訊錄等信息,儘管在未Root的情況下我們可以有選擇的控制部分許可權的開放,但難保一時點錯開放了一些隱私數據。

PC端也可以很方便的進行ROOT操作,但是從安全方面考慮,手機一旦被ROOT,各種應用都可以調用系統最高許可權,安全性實在不敢恭維~~~

參考一些資料,開啟USB模式後,與PC聯機,可以直接跳過鎖屏界面!

谷歌大概在4.2.2版本之前都是默認開啟USB調試模式的,但是在4.2.2及之後都是默認關閉此許可權的,並且隱藏了開發者模式,現在的Android大都是這樣打開USB開發者模式的,通過連擊「關於手機」中的「版本號」可以調出「開發者選項」。

如果大家不是做Android開發的話就盡量不要開啟USB調試許可權啦


推薦閱讀:

為什麼使用電腦給手機充電,中間接一個 USB hub 之後會更快?
有沒有人嘗試過同時連接大量手機(數十到上百)到一部電腦並用程序控制它們?
為什麼明明速度快很多,卻不用網線來替代 usb、thunderbolt 之類的介面?
Apple 兼容舊式 USB Type-A 介面的雙向可插線纜是怎麼實現的?
為什麼各種線材的接頭(口)要叫公、母頭?

TAG:USB | 信息安全 | Android | 許可權管理 |