国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Android免安裝升級系統(tǒng)WebView內(nèi)核探索

這篇具有很好參考價(jià)值的文章主要介紹了Android免安裝升級系統(tǒng)WebView內(nèi)核探索。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

背景

Android5.0以后WebView升級需要去Google Play安裝APK(圖一),就算安裝了以后也不一定能行,像華為、Amazon等特殊機(jī)型WebView的Chromium版本一般比較低,只能用它自己的WebView無法用Google的WebView(圖二)。

com.huawei.webview 版本對應(yīng) hwschromium,android,華為,webview

com.huawei.webview 版本對應(yīng) hwschromium,android,華為,webview

華為機(jī)上WebView內(nèi)核的Chromium版本低于107無法播放H265視頻,為了解決上述問題可以用JS實(shí)現(xiàn)H265播放,但是會比較卡,也可以用騰訊的X5內(nèi)核,但是免費(fèi)版實(shí)際chromium版本是89不支持H265視頻,這個(gè)時(shí)候我就想能不能用App內(nèi)的WebView APK作為內(nèi)核,下圖是升級WebView內(nèi)核的前后效果對比

com.huawei.webview 版本對應(yīng) hwschromium,android,華為,webview

升級前在華為機(jī)上的系統(tǒng)WebView內(nèi)核包名是com.huawei.webview,版本是14.0.0.331,UserAgent中的Chromium實(shí)際版本是99.0.4844.88,如下圖所示小于107不支持H265播放

com.huawei.webview 版本對應(yīng) hwschromium,android,華為,webview

把WebView內(nèi)核的包名、版本、包地址傳到以下代碼升級內(nèi)核成功后就可以播放H265視頻了

com.huawei.webview 版本對應(yīng) hwschromium,android,華為,webview

WebView內(nèi)核選擇頁面如下圖所示

com.huawei.webview 版本對應(yīng) hwschromium,android,華為,webview

升級成功后WebView內(nèi)核的包名變成了com.google.android.webview,UserAgent中的Chromium實(shí)際版本也變成了122.0.6261.64

com.huawei.webview 版本對應(yīng) hwschromium,android,華為,webview

項(xiàng)目地址:WebViewUpgrade,這個(gè)項(xiàng)目是為了解決WebView碎片化而產(chǎn)生,當(dāng)前處于測試階段,如果你覺得有所收獲,給這個(gè)庫點(diǎn)個(gè)贊吧,你的鼓勵(lì)是我前進(jìn)最大的動力,

兼容性

Android的設(shè)備五花八門,已測試以下功能和機(jī)型

功能特性

WebView包名 系統(tǒng)版本
com.google.android.webview 122.0.6261.64
com.android.webview 113.0.5672.136
com.huawei.webview 14.0.0.331
com.android.chrome 122.0.6261.43
com.amazon.webview.chromium 118-5993-tv.5993.155.51

機(jī)型

廠商 系統(tǒng)版本
華為Mate30 12
小米10 11
VIVO NEX A 10
OPPO FIND X5 14

原理介紹

com.huawei.webview 版本對應(yīng) hwschromium,android,華為,webview

其實(shí)原理很簡單,從上圖中可以看到WebView初始化的時(shí)候會根據(jù)WebViewProviderResponse(WebViewUpdateService調(diào)用waitForAndGetProvider)和PackageInfo(PacakgeManagerService調(diào)用getPackageInfo)生成WebViewFactoryProivder,也就是說只要hook這兩個(gè)方法就行,替換WebViewUpdateService和PacakgeManagerService的調(diào)用很簡單,其實(shí)就是替換Binder的本地接口調(diào)用,網(wǎng)上方案很多就不展開了,如果不清楚的可以直接看代碼。

替換waitForAndGetProvider值得注意的是WebViewProviderResponse對象的packageInfo查詢時(shí)flags要設(shè)置成GET_SHARED_LIBRARY_FILES|GET_SIGNATURES|GET_META_DATA,后續(xù)代碼中會用這些數(shù)據(jù),不然會崩潰。
com.huawei.webview 版本對應(yīng) hwschromium,android,華為,webview

替換getPackageInfo值得注意的是

  1. getPackageArchiveInfo查詢未安裝Apk的PackageInfo
  2. 有些APK加上GET_SIGNATURES查詢PackageInfo會找不到
  3. getPackageArchiveInfo查詢出來的PackageInfo不存在nativeLibraryDir,需要手動賦值
  4. nativeLibraryDir傳入的so路徑需要運(yùn)行時(shí)處理器指令集的ABI一樣,不然會崩潰
  5. 部分手機(jī)的packageInfo.applicationInfo.sourceDir不存在,需要手動賦值

com.huawei.webview 版本對應(yīng) hwschromium,android,華為,webview

有兩個(gè)功能還沒實(shí)現(xiàn),希望有了解的朋友能提交代碼解決這兩個(gè)問題。

  1. 運(yùn)行時(shí)動態(tài)切換WebView內(nèi)核,現(xiàn)在只能在WebView未初始化之前替換,原因是因?yàn)闀?bào)錯(cuò)UnsatisfiedLinkError: Shared library "/system/lib64/libwebviewchromium_plat_support.so" already opened by ClassLoader,WebView內(nèi)核中會調(diào)用System.loadLibrary加載libwebviewchromium_plat_support.so,而系統(tǒng)限制同一個(gè)so只能被一個(gè)classLoader加載。

  2. 不支持多進(jìn)程功能,如果把WebViewUpdateService的isMultiProcessEnabled設(shè)為true,會報(bào)錯(cuò)java.lang.RuntimeException: Illegal meta data value: the child service doesn't exist, 就算把這個(gè)錯(cuò)誤解決了,也無法用Process.startWebView手動啟動WebViewZygote進(jìn)程文章來源地址http://www.zghlxwxcb.cn/news/detail-843872.html

到了這里,關(guān)于Android免安裝升級系統(tǒng)WebView內(nèi)核探索的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 微信升級后不再使用x5內(nèi)核,debugx5.qq.com打不開,如何開啟微信調(diào)試?

    微信版本升級后,不再使用x5內(nèi)核(升級為了xweb內(nèi)核),原有的通過debugx5.qq.com開啟微信調(diào)試的方式不再生效,無法打開vConsole查看頁面請求等信息。 話不多說,直接說如何開啟微信下調(diào)試 手機(jī)用usb連接至電腦(注意選擇傳輸文件/調(diào)試模式,且手機(jī)需要開啟usb調(diào)試,具體如何

    2024年02月02日
    瀏覽(21)
  • linux|操作系統(tǒng)|centos7物理機(jī)安裝網(wǎng)卡驅(qū)動8188gu(內(nèi)核升級,firmware固件,USB設(shè)備管理,module管理)

    linux|操作系統(tǒng)|centos7物理機(jī)安裝網(wǎng)卡驅(qū)動8188gu(內(nèi)核升級,firmware固件,USB設(shè)備管理,module管理)

    目前服務(wù)器領(lǐng)域centos7基本是主流的操作系統(tǒng),而linux相對于Windows來說,軟硬件方面的支持是差很多的,在硬件方面來說,以一個(gè)免驅(qū)的網(wǎng)卡為例,window xp可能不會自動識別到,但Windows10基本都會自動識別到,簡簡單單的即插即用。根本原因在Windows隨著版本的升級,內(nèi)置的各

    2024年01月20日
    瀏覽(37)
  • Linux系統(tǒng)之升級內(nèi)核版本方法

    確保yum倉庫的正常,本次實(shí)踐用的是阿里的鏡像源。 直接更新內(nèi)核版本,此方法適用于更新內(nèi)核補(bǔ)丁。 重啟服務(wù)器 檢查內(nèi)核版本 重啟完成,發(fā)現(xiàn)內(nèi)核版本已經(jīng)升級為【3.10.0-1160.83.1.el7.x86_64】 ELRepo是一個(gè)為Linux提供驅(qū)動程序和內(nèi)核映像的存儲庫,這里的內(nèi)核大版本升級方案就

    2024年02月06日
    瀏覽(62)
  • ubuntu20.04安裝升級內(nèi)核版本

    https://blog.csdn.net/inthat/article/details/121682317 下載ubuntu-mainline-kernel腳本 將腳本放在可執(zhí)行路徑中 安裝指定內(nèi)核版本 或安裝最新內(nèi)核版本 查看最新內(nèi)核版本 安裝最新版本 如果想要 卸載 安裝的最新版本,運(yùn)行 重啟后查看當(dāng)前內(nèi)核版本 注意 :如果更換內(nèi)核后無法開機(jī),請?jiān)趃r

    2024年02月07日
    瀏覽(21)
  • 探索操作系統(tǒng):內(nèi)核、啟動和系統(tǒng)調(diào)用的奧秘

    探索操作系統(tǒng):內(nèi)核、啟動和系統(tǒng)調(diào)用的奧秘

    首先,對于有科班背景的讀者,可以跳過本系列文章。這些文章的主要目的是通過簡單易懂的匯總,幫助非科班出身的讀者理解底層知識,進(jìn)一步了解為什么在面試中會涉及這些底層問題。否則,某些概念將始終無法理解。這些計(jì)算機(jī)基礎(chǔ)文章將為你打通知識的任督二脈,祝

    2024年02月11日
    瀏覽(23)
  • centos系統(tǒng)kernel內(nèi)核安全離線升級

    centos系統(tǒng)kernel內(nèi)核安全離線升級

    系統(tǒng)漏洞掃描,掃描出以下的漏洞信息 漏洞版本如下: 1.Linux kernel 5.2.10之前版本中的drivers/hid/usbhid/hiddev.c驅(qū)動程序存在資源管理錯(cuò)誤漏洞 2.Linux kernel 4.20之前版本中存在競爭條件問題漏洞 3.Linux kernel 4.1版本至4.x版本和5.0.8之前的5.x版本中存在信息泄露漏洞 4.Linux kernel 5.1.9之前

    2024年02月05日
    瀏覽(28)
  • HUAWEI MateBook X Pro升級2T SSD并保留一鍵恢復(fù)功能

    HUAWEI MateBook X Pro升級2T SSD并保留一鍵恢復(fù)功能

    ? ? ? ?手上一臺?MateBook?X?Pro2020款筆記本,SSD為512G, 用了幾年,隨著時(shí)間的推移,硬盤空間慢慢不夠用了,系統(tǒng)分區(qū)與用戶分區(qū)在WIN10系統(tǒng)下都顯示為紅色警告,因此有了升級SSD的想法。 ? ? ? ?上網(wǎng)查了很多資料,大多數(shù)都有提到MateBook?X?Pro最大只支持1T SSD,去到華為的

    2024年02月06日
    瀏覽(45)
  • 內(nèi)核編譯-Pixel 6設(shè)備Android 13系統(tǒng)編譯gki內(nèi)核并整合KernelSU

    內(nèi)核編譯-Pixel 6設(shè)備Android 13系統(tǒng)編譯gki內(nèi)核并整合KernelSU

    為Pixel6編譯內(nèi)核,需要增加一些配置,和集成 KernelSU 。 vm Ubuntu 22.04 500g-24g內(nèi)存 默認(rèn)狀態(tài): 編譯成功刷入真機(jī)后: 下載內(nèi)核 以下操作前提:具備全球通上網(wǎng) 以下操作前提:具備全球通上網(wǎng) 以下操作前提:具備全球通上網(wǎng) 參考官方文檔通用內(nèi)核映像 (GKI) 發(fā)布 build | Android 開

    2024年02月16日
    瀏覽(23)
  • uniapp手機(jī)APP webview使用echarts顯示問題(騰訊X5內(nèi)核)

    uniapp手機(jī)APP webview使用echarts顯示問題(騰訊X5內(nèi)核)

    一、問題描述 webview頁面中引用了一些基于echarts封裝的js文件,用于在手機(jī)上展示儀表盤 在iQOO8 pro上顯示并無問題,而在vivo x21A上顯示有問題,如下圖所示 vivo x21A iQOO8 pro 二、解決過程 先說結(jié)論,出現(xiàn)這個(gè)問題是因?yàn)閑charts和手機(jī)瀏覽器內(nèi)核不兼容,webview組件默認(rèn)使用的是手

    2024年02月09日
    瀏覽(42)
  • VBS加載微軟網(wǎng)頁控件webview2(Edge-Chromium谷歌內(nèi)核)

    VBS加載微軟網(wǎng)頁控件webview2(Edge-Chromium谷歌內(nèi)核)

    VBS加載微軟網(wǎng)頁控件webview2(Edge-Chromium谷歌內(nèi)核) VBA加載Webview2瀏覽器內(nèi)核 代替了ie的webbrowser控件,效果類似: 資源:VBS加載webview2控件代替ie的webbrowser(Edge-Chromium谷歌內(nèi)核)資源-CSDN文庫 VBS loads the Microsoft web control webview2 (edge ??Google kernel)Instead of the webbrowser control of ie, the e

    2024年02月06日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包