返回介绍

白标构建

发布于 2023-08-06 23:35:04 字数 6109 浏览 0 评论 0 收藏 0

F-Droid 可以重新命名并嵌入到 Android ROM 中,以 F-Droid 为“白标”版本。这是如何做到这一点的基本介绍。为此,gradle flavors” 用于构建 F-Droid 的更名、配置版本。

app/build.gradle 开始,设置包名并创建 flavorDimensionproductFlavors

def fullApplicationId = "com.mycompany.full"
def basicApplicationId = "com.mycompany.basic"
// yes, this actually needs both quotes https://stackoverflow.com/a/41391841
def privilegedExtensionApplicationId = '"com.mycompany.privileged"'


[snip]


android {
    flavorDimensions "base", "mycompany"
    productFlavors {
       mycompany {
           dimension "mycompany"
       }
    }
}

然后 gradle 将自动查看整套文件夹中的自定义版本的文件:

  • Java 源:app/src/mycompany/java
  • Manifest 文件:app/src/mycompany/AndroidManifest.xml
  • Android 资源:app/src/mycompany/res
  • 资产:app/src/mycompany/assets

不能有重复的 Java 类,但可以在那里管理任何扩展。对于 res/ 中的任何内容,即 strings.xml 或可绘制资源,app/src/mycompany/res 中的文件将优先于默认的 F-Droid 的。例如,通过提供 app/src/mycompany/res/drawable/ic_launcher.xml 来覆盖应用图标。

要指定一组自定义应用存储库,请提供_app/src/mycompany/res/values/default_repos.xml_。该文件的格式是 String 数组,每个存储库包含 8 个元素。例如,下面是默认情况下启用的 Guardian Project 存储库配置,客户端始终接受推送请求:

 <!-- name -->
 <item>Guardian Project</item>
 <!-- address -->
 <item>https://guardianproject.info/fdroid/repo</item>
 <!-- description -->
 <item>
   The Guardian Project 的官方应用仓库。
    此仓库中的应用是
    官方二进制文件,由原始应用开发者构建,并使用
   和发布在 Google Play商店中版本一样的密钥
   进行签名。
 </item>
 <!-- version -->
 <item>13</item>
 <!-- enabled -->
 <item>1</item>
 <!-- priority -->
 <item>10</item>
 <!-- push requests: ignore, prompt, always -->
 <item>always</item>
 <!-- pubkey -->
 <item>
   308205d8308203c0020900a397b4da7ecda034300d06092a864886f70d01010505003081ad310b30090603550406130255533111300f06035504080c084e657720596f726b3111300f06035504070c084e657720596f726b31143012060355040b0c0b4644726f6964205265706f31193017060355040a0c10477561726469616e2050726f6a656374311d301b06035504030c14677561726469616e70726f6a6563742e696e666f3128302606092a864886f70d0109011619726f6f7440677561726469616e70726f6a6563742e696e666f301e170d3134303632363139333931385a170d3431313131303139333931385a3081ad310b30090603550406130255533111300f06035504080c084e657720596f726b3111300f06035504070c084e657720596f726b31143012060355040b0c0b4644726f6964205265706f31193017060355040a0c10477561726469616e2050726f6a656374311d301b06035504030c14677561726469616e70726f6a6563742e696e666f3128302606092a864886f70d0109011619726f6f7440677561726469616e70726f6a6563742e696e666f30820222300d06092a864886f70d01010105000382020f003082020a0282020100b3cd79121b9b883843be3c4482e320809106b0a23755f1dd3c7f46f7d315d7bb2e943486d61fc7c811b9294dcc6b5baac4340f8db2b0d5e14749e7f35e1fc211fdbc1071b38b4753db201c314811bef885bd8921ad86facd6cc3b8f74d30a0b6e2e6e576f906e9581ef23d9c03e926e06d1f033f28bd1e21cfa6a0e3ff5c9d8246cf108d82b488b9fdd55d7de7ebb6a7f64b19e0d6b2ab1380a6f9d42361770d1956701a7f80e2de568acd0bb4527324b1e0973e89595d91c8cc102d9248525ae092e2c9b69f7414f724195b81427f28b1d3d09a51acfe354387915fd9521e8c890c125fc41a12bf34d2a1b304067ab7251e0e9ef41833ce109e76963b0b256395b16b886bca21b831f1408f836146019e7908829e716e72b81006610a2af08301de5d067c9e114a1e5759db8a6be6a3cc2806bcfe6fafd41b5bc9ddddb3dc33d6f605b1ca7d8a9e0ecdd6390d38906649e68a90a717bea80fa220170eea0c86fc78a7e10dac7b74b8e62045a3ecca54e035281fdc9fe5920a855fde3c0be522e3aef0c087524f13d973dff3768158b01a5800a060c06b451ec98d627dd052eda804d0556f60dbc490d94e6e9dea62ffcafb5beffbd9fc38fb2f0d7050004fe56b4dda0a27bc47554e1e0a7d764e17622e71f83a475db286bc7862deee1327e2028955d978272ea76bf0b88e70a18621aba59ff0c5993ef5f0e5d6b6b98e68b70203010001300d06092a864886f70d0101050500038202010079c79c8ef408a20d243d8bd8249fb9a48350dc19663b5e0fce67a8dbcb7de296c5ae7bbf72e98a2020fb78f2db29b54b0e24b181aa1c1d333cc0303685d6120b03216a913f96b96eb838f9bff125306ae3120af838c9fc07ebb5100125436bd24ec6d994d0bff5d065221871f8410daf536766757239bf594e61c5432c9817281b985263bada8381292e543a49814061ae11c92a316e7dc100327b59e3da90302c5ada68c6a50201bda1fcce800b53f381059665dbabeeb0b50eb22b2d7d2d9b0aa7488ca70e67ac6c518adb8e78454a466501e89d81a45bf1ebc350896f2c3ae4b6679ecfbf9d32960d4f5b493125c7876ef36158562371193f600bc511000a67bdb7c664d018f99d9e589868d103d7e0994f166b2ba18ff7e67d8c4da749e44dfae1d930ae5397083a51675c409049dfb626a96246c0015ca696e94ebb767a20147834bf78b07fece3f0872b057c1c519ff882501995237d8206b0b3832f78753ebd8dcbd1d3d9f5ba733538113af6b407d960ec4353c50eb38ab29888238da843cd404ed8f4952f59e4bbc0035fc77a54846a9d419179c46af1b4a3b7fc98e4d312aaa29b9b7d79e739703dc0fa41c7280d5587709277ffa11c3620f5fba985b82c238ba19b17ebd027af9424be0941719919f620dd3bb3c3f11638363708aa11f858e153cf3a69bce69978b90e4a273836100aa1e617ba455cd00426847f
 </item>

基本 Flavor 与完整产品 Flavor

F-Droid 本身已经内置了两种 Flavor:basicfullfull 是被称为 F-Droid 的应用,而 basic 是该应用程序的最简约版本,它仍然提供核心应用程序商店功能。 由于这些是单独的 _ flavorDimension_,因此添加的自定义项将同时适用于两者。 选择要构建的那个是通过在 Android Studio 中指定”Build Variant” 和 gradle 目标来完成的,例如 ./gradlew assembleMycompanyFullDebug

定制化

使用 gradle 构建 Flavor 时,可以很容易地自定义任何 XML 文件。因此,这是开始自定义 F-Droid 构建的推荐方式。 app/src/main/res 中的任何 XML 文件都可以通过在 app/src/mycompany/res 中放置一个同名的 XML 来覆盖。

移除操作栏/菜单项

要隐藏诸如“交换应用”或“存储库”之类的内容,请将 app/src/main/res/menu/main.xml 复制到 app/src/mycompany/res/menu/ main.xml,并删除和/或自定义那里的项目。

首选项

对于默认启用自动更新的自定义构建,覆盖 app/src/main/res/xml/preferences.xml。你可以在 app/src/mycompany/res/xml/preferences.xml 中自定义首选项及其默认值。全自动更新需要 特权扩展。通过定期访问,更新只会自动下载。用户仍然需要在每一个上点击安装。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文