从源代码构建铬后,您可以通过运行
为Windows创建“迷你安装程序”ninja -C out\BuildFolder mini_installer
此工作正常,并在mini_installer.exe
中创建out\BuildFolder
。
有关详细信息,请参阅Chromium - How to make an actual installer out of mini_installer.exe。
但在运行mini_installer.exe
后,应用程序会忽略我的品牌和grd
资源自定义。
应该使用我已经定制的“IDS_PRODUCT_NAME_BASE”。
以下是我申请品牌的文件:
chrome\app\chromium_strings.grd
chrome\app\settings_chromium_strings.grdp
chrome\app\theme\chromium\BRANDING
但它似乎忽略了它们。
C:\Program Files (x86)\Chromium
而不是C:\Program Files (x86)\CustomProductName
chrome.exe
而非CustomProductName.exe
如何定制?
答案 0 :(得分:2)
品牌不会改变生成的可执行文件的名称。您应修改src\chrome\BUILD.gn
以将名称从chrome.exe
更改为CustomProductName.exe
,具体如下:
if (is_win) {
action("reorder_imports") {
script = "//build/win/reorder-imports.py"
# See comment in chrome_dll.gypi in the hardlink_to_output
# target for why this cannot be 'initial' like the DLL.
inputs = [
"$root_out_dir/initialexe/CustomProductName.exe",
]
outputs = [
"$root_out_dir/CustomProductName.exe",
]
if (symbol_level != 0) {
outputs += [ "$root_out_dir/CustomProductName.exe.pdb" ]
}
... later in the file ...
chrome_binary("chrome_initial") {
if (is_win) {
output_name = "initialexe/CustomProductName"
这样做会在CustomProductName.exe
中生成Chrome.exe
而不是BuildFolder
。之后,您还应通过修改此文件来通知迷你安装程序:src\chrome\installer\mini_installer\BUILD.gn
:
action(archive_name) {
script = "//chrome/tools/build/win/create_installer_archive.py"
release_file = "chrome.release"
inputs = [
"$chrome_dll_file",
"$root_out_dir/CustomProductName.exe",
"$root_out_dir/locales/en-US.pak",
"$root_out_dir/setup.exe",
"//chrome/tools/build/win/makecab.py",
release_file,
]
这些更改只会更改可执行文件的名称。您还必须修改源代码以反映这些更改。
在此文件中指定浏览器可执行文件的名称:src\chrome\installer\util\util_constants.cc
const wchar_t kChromeExe[] = L"CustomProductName.exe";
应在此文件中指定安装文件夹的路径:
src\chrome\install_static\chromium_install_modes.cc
const wchar_t kCompanyPathName[] = L"CompanyName";
const wchar_t kProductPathName[] = L"CustomProductName";
同样,您还必须在此文件中更改公司名称和应用名称:src\chrome\installer\util\browser_distribution.cc
。我不确定当前版本的Chromium是否仍使用BrowserDistribution
类的数据。
让我知道它是否有效。我刚刚通过我们的回购历史来找出这些变化。
更新:
评论显示了更多地方:
打开chrome_elf/BUILD.gn
并在此处更改:
$root_out_dir/CustomProductName.exe
并在此处更改:chrome/installer/mini_installer/chrome.release
CustomProductName.exe: %(ChromeDir)s\
并在此处更改:build/win/reorder-imports.py
input_image = os.path.join(input_dir, 'CustomProductName.exe')
output_image = os.path.join(output_dir, 'CustomProductName.exe')
... later on in the file ...
for fname in glob.iglob(os.path.join(input_dir, 'CustomProductName.exe.*')):