正确的铬浏览器品牌? [英] Proper chromium browser branding?

查看:108
本文介绍了正确的铬浏览器品牌?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I'm working on Chromium fork. How can i replace Chromium resources and app package?


  1. 资源

我发现有一天 android_branding_res_dirs gn参数是引入

I've found that one day android_branding_res_dirs gn argument was introduced:

@@ -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",

,然后已损坏

@@ -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_myfork 替换 res_chromium > chrome / android / BUILD.gn 正确现在添加派生资源的方法?

So is adding res_myfork directory and replacing res_chromium with res_myfork in chrome/android/BUILD.gn proper way to add fork resources now?


  1. 应用程序包

我发现宣言 chrome / android / BUILD.gn 中的st_package

I've found 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 ):

Since i can see in most java classes package resource namespace is hardcoded (eg. /chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/ActionItem.java):

import org.chromium.chrome.R;

什么是正确的引用资源的方式?
是否应该将这样的行替换为包资源名称空间?
构建时是否有任何python脚本可以自动执行此操作?

What is proper way to reference resources? Should i just replace such lines to my package resources namespace? Is there any python script to do it automatically while building?

我应该替换 custom_package 还是离开

更新1。

我发现 Chrome一词被硬编码在其中大多数字符串,例如 ./ chrome / android / java / strings / android_chrome_strings.grd

I've found word "Chrome" to be hardcoded in most strings like in ./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>

有什么方法可以调整它(脚本)还是我应该更改它?我希望在将来合并时避免冲突,所以我正在寻找正确的方法(或避免痛苦的方法)。

Is there any way to adjust it (script) or should i just change it? I'd like to avoid conflicts while merging in the future so i'm looking for proper way (or lest painless way) to do it.

更新2。

我可以看到Brave浏览器是如何做到的:
https://github.com/brave/browser-android-tabs/commit/b3fa10a7b10379c8ce5cdbeb68e3c52b580292da

I can see how Brave browser did it: https://github.com/brave/browser-android-tabs/commit/b3fa10a7b10379c8ce5cdbeb68e3c52b580292da

https://github.com/brave/browser-android-tabs/commit/956bd321871844f72d98b9666434e5aceac7da >

https://github.com/brave/browser-android-tabs/commit/956bd321871844f72d98b9666434e5aceac7da81

这真的是好方法吗?

推荐答案

src / chrome / android / BUILD.gn

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

创建一个 package.gni 文件:

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

现在,当 gn gen .. manifest_package = com.company.fork

PS。顺便说一句,尝试先直接覆盖 chrome_public_manifest_package 而无需进行更改。

PS. BTW try to override chrome_public_manifest_package directly first without that changes.

这篇关于正确的铬浏览器品牌?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆