日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

android p 第三方预装,android P 隐藏API对系统APP的影响

發(fā)布時間:2024/7/23 windows 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android p 第三方预装,android P 隐藏API对系统APP的影响 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

android P限制了第三方APK對@hide API的調(diào)用,那么對系統(tǒng)APK有什么影響呢?

國內(nèi)各大手機廠商對ROM進行各種定制,可以很容易繞過這些限制,那對于需要出海并且滿足CTS要求的廠商有什么影響呢?

先說結(jié)論:對系統(tǒng)廠商APK沒有任何影響,依然可調(diào)用任何API

第三方APK,受hide限制

系統(tǒng)platform簽名APK,不受限制

非platform簽名APK,集成在system分區(qū),又在hiddenapi-package-whitelist.xml,不受限制。(且目前不影響CTS)

一、對第三方APK、系統(tǒng)APK的影響

SDK28

@hide 淺灰

@hide 黑名單

@systemapi

非platform簽名

/data/app

是,警告

是,需permisison權限

/system/app

是,警告

是,需permisison權限

/system/priv-app

是,警告

是,需permisison權限

hiddenapi-package-whitelist.xml

(/system/app、priv-app)

是,需permisison權限

platform簽名

/data/app

/system/app

/system/priv-app

是,需permisison權限

二、新增hiddenapi-package-whitelist.xml名單,能否通過CTS?

實測無影響。

但不確定google后續(xù)CTS版本是否加強檢查,有風險。

相關測試項:

CtsHiddenApiBlacklistApi27TestCases

CtsHiddenApiBlacklistCurrentApiTestCases

CtsHiddenApiBlacklistDebugClassTestCases

CtsHiddenApiKillswitchDebugClassTestCases

CtsHiddenApiKillswitchWhitelistTestCases

CtsHiddenApiKillswitchWildcardTestCases

三、Hide API限制原理

詳細的原理牽扯到編譯時、運行時,還是比較復雜的,下面僅從較宏觀的角度闡明受限原理、加白原理。

a.訪問受限原理

hiddenapi-light-greylist.txt包含的api,會在dex中對應的Method結(jié)構(gòu)生成HiddenApiAccessFlags::kLightGreylist訪問權限標記。

生成正常framework dex

Hiddenapi工具根據(jù)hiddenapi-light-greylist.txt等配置文件對dex的access_flags進行修改

新的帶access標記的framework dex

ART通過access_flags判斷是否可以調(diào)用:

Action action = GetActionFromAccessFlags(member->GetHiddenApiAccessFlags());

if (action == kAllow) {

return action;

}

b.加白不受限原理

構(gòu)造ApplicationInfo時會判斷platform簽名、hide-package-whitelist,來確定HIDDEN_API_ENFORCEMENT的flag

private boolean isAllowedToUseHiddenApis() {

return isSignedWithPlatformKey()

|| (isPackageWhitelistedForHiddenApis() && (isSystemApp() || isUpdatedSystemApp()));

}

ActivityManagerService中startProcessLocked()啟動進程時會把是否檢查hide api的flag傳給zygote

@HiddenApiEnforcementPolicy int policy =app.info.getHiddenApiEnforcementPolicy();

int policyBits = (policy << Zygote.API_ENFORCEMENT_POLICY_SHIFT);

runtimeFlags |= policyBits;

fork新的app進程后,調(diào)用ZygoteHooks_nativePostForkChild( ),初始化art虛擬機參數(shù)hidden_api_policy_,設置不進行hide api檢查的kNoChecks選項。

總結(jié)

以上是生活随笔為你收集整理的android p 第三方预装,android P 隐藏API对系统APP的影响的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。