正确的 chromium 浏览器品牌?

2024-03-01

我正在研究 Chromium 叉子。如何替换 Chromium 资源和应用程序包?

  1. 资源

我发现有一天android_branding_res_dirsgn 参数是介绍 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资源?

  1. 应用程序包

我发现了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

这真的是好方法吗?


In

 import('package.gni')
 ...
 chrome_public_manifest_package = manifest_package
 chrome_public_test_manifest_package = test_manifest_package

创建一个package.gni file:

declare_args() {
    manifest_package = "org.chromium.chrome"
    test_manifest_package = "${manifest.package}.tests"
}

现在可以随意覆盖它gn gen .. manifest_package="com.company.fork"

附言。顺便说一句尝试覆盖chrome_public_manifest_package直接首先而不进行任何更改。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

正确的 chromium 浏览器品牌? 的相关文章

随机推荐