Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save tw-Frey/42ddda775f5f64c67bad2d2ce40711d6 to your computer and use it in GitHub Desktop.

Select an option

Save tw-Frey/42ddda775f5f64c67bad2d2ce40711d6 to your computer and use it in GitHub Desktop.
替换 Webview 預設 Package Name, e.g. [com.android.webview] → [com.google.android.webview]
  1. 安装最新的 Android System Webview (com.google.android.webview)
  2. 拷贝 (pull) 一份 /System/framework/framework-res.apk 的副本到任意位置
  3. 搜索在其中搜索 webview, 将 /android/string/config_webViewPackageName 的值改为 com.google.android.webview
  4. 将修改后的文件覆盖回 (push) 原位置
  5. 重启
@tw-Frey
Copy link
Author

tw-Frey commented Oct 31, 2019

3. 搜索在其中搜索 webview, 将 /android/string/config_webViewPackageName 的值改为 com.google.android.webview

以 Android L Emulator 的framework-res.apk來說
android/string/config_webViewPackageName 是在/res/values/strings.xml
如果沒有 decompile 工具
很難搜尋到


在 /res/values/strings.xml 裡

<string name="config_webViewPackageName">com.android.webview</string>

改成

<string name="config_webViewPackageName">com.google.android.webview</string>

@tw-Frey
Copy link
Author

tw-Frey commented Oct 31, 2019

承上,修改完要打包起來

使用的 decompile 工具是ApkTool
最新版是2.4.0

一開始 decompile 沒有困難
但要 compile/build 回去就一直不成功

原本還以為可能是用最新的映像檔 所以 apk 有加工過
嘗試修改錯誤, 嘗試很多方法, trial and error

最後成功打包出來
直接說結論:ApkTool要用2.3.1

因為 framework-res.apk 來源是 Android L Emulator
使用 反譯/打包aapt2好像會有問題
ApkTool2.3.2預設是aapt2

打包出來的 framework-res.apk 還不能直接 push 回去
真的會 變磚
(幸好使用的是 Android Emulator)

打包出來的 framework-res.apk 需要再調整
雖然ApkTool (v2.3.2) 支援將原本簽名(META-INF) 一併打包進來
但試過沒用

調整的方法應該是

新的 framework-res.apk 裡的resources.arsc拷貝到 舊的 framework-res.apk 裡

網路上有很多參考資料
這裡附上圖文並茂中文連結:反編譯+回編譯教程【反編譯framework-res.apk為例】


附帶使用 apktool 指令暨步驟

  • (預架) apktool if framework-res.apk (optional)
  • (反譯) apktool d framework-res.apk
  • (打包) apktool b framework-res

@tw-Frey
Copy link
Author

tw-Frey commented Oct 31, 2019

4. 将修改后的文件覆盖回 (push) 原位置

這也不簡單
詳情參考:如何 push 檔案到 Android Emulator 的 /system (USE -writable-system)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment