我正在研究 Chromium 叉子。如何替换 Chromium 资源和应用程序包?
- 资源
我发现有一天android_branding_res_dirs
gn 参数是介绍 https://chromium.googlesource.com/chromium/src/+/60e61e8a7f98c447baadb317ad56d49c755e0071%5E%21/#F0:
@@ -43,10 +43,10 @@
# GYP: //chrome/chrome.gyp:chrome_java (resources part)
android_resources("chrome_java_resources") {
- resource_dirs = [
- "java/res",
- "java/res_default",
- ]
+ if (!defined(android_branding_res_dirs)) {
+ android_branding_res_dirs = [ "//chrome/android/java/res_chromium" ]
+ }
+ resource_dirs = [ "java/res" ] + android_branding_res_dirs
deps = [
":chrome_locale_paks",
":chrome_strings_grd",
但是之后broken https://chromium.googlesource.com/chromium/src/+/1db26ac88b5195d575f23fe6120ec1f643950300%5E%21/#F2:
@@ -43,10 +43,10 @@
# GYP: //chrome/chrome.gyp:chrome_java (resources part)
android_resources("chrome_java_resources") {
- if (!defined(android_branding_res_dirs)) {
- android_branding_res_dirs = [ "//chrome/android/java/res_chromium" ]
- }
- resource_dirs = [ "java/res" ] + android_branding_res_dirs
+ resource_dirs = [
+ "java/res",
+ "//chrome/android/java/res_chromium",
+ ]
deps = [
":chrome_locale_paks",
":chrome_strings_grd",
添加也是如此res_myfork
目录和替换res_chromium
with res_myfork
in chrome/android/BUILD.gn
proper现在如何添加fork资源?
- 应用程序包
我发现了manifest_package
in chrome/android/BUILD.gn
:
manifest_package = "org.chromium.chrome"
我也可以看到custom_package = "org.chromium.chrome"
:
android_resources("chrome_java_resources") {
resource_dirs = [
"java/res",
"//chrome/android/java/res_chromium", // replaced to `res_myfork`
]
...
custom_package = "org.chromium.chrome" // replaced to `org.company.myfork` by me
}
构建时我遇到错误:
因为我可以看到大多数java类包资源命名空间都是硬编码的(例如/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ActionItem.java
):
import org.chromium.chrome.R;
What is proper参考资源的方式?
我应该将这些行替换为我的包资源命名空间吗?
是否有任何 python 脚本可以在构建时自动执行此操作?
我应该更换吗custom_package
还是保持原样?
更新1。
我发现单词“Chrome”在大多数字符串中都被硬编码,例如./chrome/android/java/strings/android_chrome_strings.grd
:
<!-- Sign-in preference -->
<message name="IDS_SIGN_IN_TO_CHROME" desc="Title for the button to sign in to Chrome using one's Google account. [CHAR-LIMIT=27]">
Sign in to Chrome
</message>
有什么方法可以调整它(脚本)还是我应该改变它?我想在未来合并时避免冲突,所以我正在寻找正确的方法(或以免无痛的方法)来做到这一点。
更新2。
我可以看到 Brave 浏览器是如何做到的:https://github.com/brave/browser-android-tabs/commit/b3fa10a7b10379c8ce5cdbeb68e3c52b580292da https://github.com/brave/browser-android-tabs/commit/b3fa10a7b10379c8ce5cdbeb68e3c52b580292da
https://github.com/brave/browser-android-tabs/commit/956bd321871844f72d98b9666434e5aceac7da81 https://github.com/brave/browser-android-tabs/commit/956bd321871844f72d98b9666434e5aceac7da81
这真的是好方法吗?