Android非SDK接口檢測(cè)工具--veridex在window 10的使用

一.背景

? ? 1.非 SDK 接口限制

????????????非SDK接口限制在Android P中就已提出奢啥,但是在Q中宪祥,被限制的接口的分類有較大變化裹芝。

? ??????????針對(duì)非 SDK 接口的限制官網(wǎng)說明

? ? 2.非SDK接口介紹

? ? ? ? ? ? 為了確保應(yīng)用穩(wěn)定性和兼容性刻坊,Android 平臺(tái)開始限制您的應(yīng)用可在 Android 9(API 級(jí)別 28)中使用哪些非 SDK 接口。Android Q包含更新后的受限非 SDK 接口列表(基于Android 開發(fā)者之間的協(xié)作以及最新的內(nèi)部測(cè)試)醋虏。

? ? ? ? ? ?非SDK接口限制就是某些SDK中的私用方法寻咒,如private方法,你通過Java反射等方法獲取并調(diào)用了颈嚼。那么這些調(diào)用將在target>=P或target>=Q的設(shè)備上被限制使用毛秘,當(dāng)你使用了這些方法后,會(huì)報(bào)錯(cuò):

獲取方法報(bào)錯(cuò)信息

非SDK接口查找

如果您不確定自己的應(yīng)用是否使用了非 SDK 接口粘舟,則可以測(cè)試該應(yīng)用進(jìn)行確認(rèn)熔脂。

當(dāng)你調(diào)用了非SDK接口時(shí),會(huì)有類似Accessing hidden XXX的日志:

Accessing hidden field Landroid/os/Message;->flags:I(light greylist,JNI)

但是一個(gè)大項(xiàng)目到底哪里使用了這些方法柑肴,靠review代碼和看日志肯定是不現(xiàn)實(shí)的霞揉,谷歌官方也提供了官方檢查器veridex用來檢測(cè)一個(gè)apk中哪里使用了非SDK接口。也就是本次要介紹的veridex的使用

二.veridex的下載

? ? 1.官網(wǎng)下載地址:veridex

? ? 2.官網(wǎng)下載需要梯子,這里提供百度云下載地址,如果鏈接失效,請(qǐng)?jiān)谙掳l(fā)評(píng)論區(qū)留言

????????????百度網(wǎng)盤下載地址? ????????????????????提取碼:2tow

由于veridex現(xiàn)在沒有window的版本,所以我們只能window系統(tǒng)的只能自己下載Linux系統(tǒng)進(jìn)行使用,下面介紹window 1-安裝Linux子系統(tǒng) ubuntu

三.Windows10安裝Linux子系統(tǒng)Ubuntu

? ??1晰骑、開啟開發(fā)者模式

????順序:打開 系統(tǒng)設(shè)置 --- 更新和安全 --- 針對(duì)開發(fā)人員---選擇開發(fā)者模式

選擇開發(fā)者模式

????點(diǎn)擊后會(huì)自動(dòng)安裝環(huán)境

????2适秩、安裝 Windows 10 的 Linux 子系統(tǒng)組件

????順序: 打開 系統(tǒng)設(shè)置 --- 應(yīng)用 --- 右側(cè)的程序和功能 --- 啟動(dòng)或關(guān)閉windows功能 ---勾選適用于 Linux 的 Windows 子系統(tǒng)

安裝 Windows 10 的 Linux 子系統(tǒng)組件

????確定后,重啟電腦硕舆,系統(tǒng)更新配置

????3秽荞、安裝 Linux 子系統(tǒng)

????打開 Windows 應(yīng)用市場(chǎng),輸入 linux 搜索抚官,選擇你自己想要的系統(tǒng)版本扬跋,我選擇的是 Ubuntu ,然后下載安裝凌节,微軟的下載速度還是挺快的钦听,很快就下載完了。

Windows 應(yīng)用市場(chǎng)搜索Linux

????然后點(diǎn)擊啟動(dòng)倍奢,第一次會(huì)進(jìn)行初始化安裝朴上。

安裝啟動(dòng)

????安裝時(shí)注意 Win10 有個(gè)存在好久一直沒修復(fù)很煩人的 BUG ,就是 CMD 總是會(huì)遇到不會(huì)自動(dòng)刷新輸出內(nèi)容卡在那兒不動(dòng)卒煞,一直顯示安裝中痪宰,實(shí)際初始化是很快的,按下回車鍵發(fā)現(xiàn)已經(jīng)安裝好了只是沒輸出而已畔裕。

設(shè)置帳號(hào)密碼

????初始化安裝完成衣撬,現(xiàn)在設(shè)置帳號(hào)密碼,就搞定了

????參考文檔:Windows10安裝Linux子系統(tǒng)Ubuntu

四.veridex的使用

? ? 下載好veridex后解壓文件,選擇veridex-linux文件解壓,并打開Ubuntu進(jìn)入到該文件夾目錄,選擇要檢測(cè)的安裝包apk文件復(fù)制到相同文件夾目錄下,然后使用下面的命令執(zhí)行(test.apk為你的apk文件名):

./appcompat.sh --dex-file=test.apk

????掃描結(jié)果分為兩部分,一部分為被調(diào)用的非SDK接口的位置柴钻,另一部分為非SDK接口數(shù)量統(tǒng)計(jì):

檢測(cè)結(jié)果

? ? ? ? 1.greylist: 灰名單淮韭,即當(dāng)前版本仍能使用的非SDK接口,但在下一版本中可能變成被限制的非SDK接口

? ? ? ? 2.blacklist:黑名單贴届,使用了就會(huì)報(bào)錯(cuò)靠粪。也是我們項(xiàng)目中必須解決的非SDK接口

? ? ? ? 3.greylist-max-o:在targetSDK<=O中能使用,但是在targetSDK>=P中被限制的非SDK接口

? ? ? ? 4.greylist-max-p:在targetSDK<=P中能使用毫蚓,但是在targetSDK>=Q中被限制的非SDK接口

? ? 所以從適配Q的角度出發(fā)占键,除了greylist我們可以暫時(shí)不解決以外,其余三種類型的非SDK接口需要我們進(jìn)行適配元潘。

五.非SDK接口適配

????????如果您的應(yīng)用依賴于非 SDK 接口畔乙,則應(yīng)該開始計(jì)劃遷移到 SDK 替代方案。如果您無法為應(yīng)用中的某項(xiàng)功能找到使用非 SDK 接口的替代方案翩概,則應(yīng)該請(qǐng)求新的公共 API牲距。

????????官方要求targetSDK>=P的應(yīng)用不使用這些方法返咱,并尋找其他的公共API去替代這些非SDK接口,如果找不到牍鞠,則可以向谷歌申請(qǐng)咖摹,請(qǐng)求一個(gè)新的公共API?https://developer.android.com/distribute/best-practices/develop/restrictions-non-sdk-interfaces#feature-request?(一般不需要)。

項(xiàng)目中使用非SDK接口大概率有以下兩種情況:

? ? 1.在自定義View的過程中為了方便难述,使用反射修改某個(gè)參數(shù)萤晴。

? ? 2.三方SDK中使用了非SDK接口(這種情況比較多)。

第一種是好解決的胁后,畢竟是我們自己寫的代碼店读。

第二種就頭疼了,只能更新到最新的三方SDK版本攀芯,或者提工單屯断、換庫(也是整個(gè)適配過程中工作量最龐大的部分)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末侣诺,一起剝皮案震驚了整個(gè)濱河市裹纳,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌紧武,老刑警劉巖剃氧,帶你破解...
    沈念sama閱讀 216,496評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異阻星,居然都是意外死亡朋鞍,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門妥箕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來滥酥,“玉大人,你說我怎么就攤上這事畦幢】参牵” “怎么了?”我有些...
    開封第一講書人閱讀 162,632評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵宇葱,是天一觀的道長(zhǎng)瘦真。 經(jīng)常有香客問我,道長(zhǎng)黍瞧,這世上最難降的妖魔是什么诸尽? 我笑而不...
    開封第一講書人閱讀 58,180評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮印颤,結(jié)果婚禮上您机,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好际看,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評(píng)論 6 388
  • 文/花漫 我一把揭開白布咸产。 她就那樣靜靜地躺著,像睡著了一般仲闽。 火紅的嫁衣襯著肌膚如雪锐朴。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,165評(píng)論 1 299
  • 那天蔼囊,我揣著相機(jī)與錄音,去河邊找鬼衣迷。 笑死畏鼓,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的壶谒。 我是一名探鬼主播云矫,決...
    沈念sama閱讀 40,052評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼汗菜!你這毒婦竟也來了让禀?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,910評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤陨界,失蹤者是張志新(化名)和其女友劉穎巡揍,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體菌瘪,經(jīng)...
    沈念sama閱讀 45,324評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡腮敌,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了俏扩。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片糜工。...
    茶點(diǎn)故事閱讀 39,711評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖录淡,靈堂內(nèi)的尸體忽然破棺而出捌木,到底是詐尸還是另有隱情,我是刑警寧澤嫉戚,帶...
    沈念sama閱讀 35,424評(píng)論 5 343
  • 正文 年R本政府宣布刨裆,位于F島的核電站,受9級(jí)特大地震影響彬檀,放射性物質(zhì)發(fā)生泄漏崔拥。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評(píng)論 3 326
  • 文/蒙蒙 一凤覆、第九天 我趴在偏房一處隱蔽的房頂上張望链瓦。 院中可真熱鬧,春花似錦、人聲如沸慈俯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽贴膘。三九已至卖子,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間刑峡,已是汗流浹背洋闽。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留突梦,地道東北人诫舅。 一個(gè)月前我還...
    沈念sama閱讀 47,722評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像宫患,于是被迫代替她去往敵國和親刊懈。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • 0. 結(jié)論 從 Android 9(API 級(jí)別 28)開始娃闲,系統(tǒng)會(huì)限制APP通過反射或JNI調(diào)用非Andorid...
    天才木木閱讀 6,764評(píng)論 1 8
  • 北京時(shí)間2019年3月14日Google正式對(duì)外發(fā)布Android Q Beta 1及預(yù)覽版SDK虚汛,這意味著安卓開...
    安卓搬磚小曾閱讀 14,888評(píng)論 8 20
  • 點(diǎn)擊查看原文 Web SDK 開發(fā)手冊(cè) SDK 概述 網(wǎng)易云信 SDK 為 Web 應(yīng)用提供一個(gè)完善的 IM 系統(tǒng)...
    layjoy閱讀 13,758評(píng)論 0 15
  • 文‖孫懷軍 張委員騎在大金鹿自行車上,明顯加快了蹬踏板的節(jié)奏皇帮。因?yàn)樗l(fā)現(xiàn)卷哩,剛才陽光燦爛白云悠悠的天空,一會(huì)就烏云密...
    荒野石頭閱讀 305評(píng)論 0 4
  • 我雙手捧這一個(gè)炙熱的心來了 與這炙熱的大地一樣 心潮澎湃属拾,不知疲倦 日夜兼行殉疼,風(fēng)行無懼 漸漸的風(fēng)越來越大 一扇窗關(guān)...
    再別沙漠閱讀 128評(píng)論 1 5