내 Android 태블릿 (5.0.2 실행)의 앱 스토어에서 최신 버전의 Android 시스템 WebView 를 다운로드하여 설치했습니다 .
그러나 앱은 여전히 이전 웹뷰 버전 (39.0.0.0)을 사용합니다.
어떻게 전환 할 수 있습니까?
정보를 위해 이전 버전을 비활성화하려고 시도했지만 webview를 사용하는 앱을 열면 다시 활성화됩니다.
내 Android 태블릿 (5.0.2 실행)의 앱 스토어에서 최신 버전의 Android 시스템 WebView 를 다운로드하여 설치했습니다 .
그러나 앱은 여전히 이전 웹뷰 버전 (39.0.0.0)을 사용합니다.
어떻게 전환 할 수 있습니까?
정보를 위해 이전 버전을 비활성화하려고 시도했지만 webview를 사용하는 앱을 열면 다시 활성화됩니다.
답변:
루트가 없으면 변경할 수 없습니다.
시스템 프레임 워크는 WebView 구성 요소를 요청하는 응용 프로그램에 특정 패키지를 사용하도록 하드 코딩 되어 있습니다. 기본적으로 (AOSP에서) com.android.webview
AOSP 빌드 프로세스 중에 컴파일되는 버전 인 값을 사용합니다 . 이 구성 요소를 수정하는 제조업체의 장치에서는 패키지 이름이 다를 수 있습니다. 어쨌든, 장치와 함께 제공된 WebView를 바꾸려면 대신이 값을로 수정해야합니다 com.google.android.webview
.
이를 수행하는 "수동"방법은 장치에서 framework-res.apk 파일 을 가져 와서 디 컴파일하고 config_webViewPackageName
리소스 변수 의 값을 변경하는 것 입니다. /res/values/strings.xml
.apk 내에 있어야합니다 . 이 작업을 완료하면 모든 것을 다시 패키지하고 새 .apk를 장치에 밀어 넣어 이전 파일을 교체해야합니다.
시도 할 수있는 다른 방법 은 Xposed 프레임 워크 를 설치 한 다음 WebViewGoogle 모듈 을 사용하는 것 입니다. 맞춤 ROM을 사용하는 경우 필요한 프레임 워크 구성 요소를 영구적으로 수정하거나 기본적으로 Google WebView를 사용하도록 빌드 된 패키지를 찾을 수도 있습니다.
내 가설은 시스템이 어떤 형태로 존재하는 WebView 구현에 의존하기 때문에이 제한이 부분적으로 존재한다는 것입니다. 따라서 사용자가 수정할 수 있으면 이상한 방식으로 시스템을 손상시킬 수 있습니다. 또한 악의적 인 사용자가 사용자 모르게 악의적 인 정보를 제공하려고하는 등 앱이 시스템 WebView를 재정의하도록 허용하는 보안에 영향을 미칩니다.
추가 설명으로 Play 스토어에서 System WebView를 사용할 수있는 이유는 Nexus 기기 (및 기타 기기)가 사전 설치되어 있고 사용하도록 구성되어 있기 때문입니다. 실제로는 해당 장치에 대한 시스템 WebView이므로 Google은 Play 스토어를 통해 이러한 장치에 대한 WebView 업데이트를 제공 할 수 있으므로 브라우저 / WebView를 업데이트하기 위해 전체 시스템 OTA가 필요하지 않습니다. Google이 유사한 방식으로 Play 스토어 업데이트로 마이그레이션 한 다른 구성 요소가 있습니다. 그 이유는 본질적으로 더 빠르다는 이유입니다. 전화와 주소록 은 가장 최근의 것 중 두 가지였으며 링크 된 기사는 Google이이 방법을 선택한 이유에 대한 추가 정보를 제공합니다.