【问题标题】:How disable dm-verity on Android Devices without using ADB?如何在不使用 ADB 的情况下在 Android 设备上禁用 dm-verity?
【发布时间】:2018-02-07 09:58:45
【问题描述】:

我正在从源代码构建 AOSP,并且我希望能够将 Google Apps 包刷入 ROM。但是手机重启后,谷歌应用程序并没有应用,有人说可能是DM-Verity的原因。

我想知道如何禁用这个 DM-Verity 保护,应该可以在内核源代码中禁用。我怎样才能开始这样做?

我知道有一个 ADB 命令“adb disable-verity”可以工作,但我希望我的构建默认禁用 dm-verity。

有人可以帮我解决这个问题吗?谢谢:)

【问题讨论】:

  • 你构建的目标是什么?如果您尝试我的建议,请告诉我。
  • 抱歉,我今天不在我的电脑前,但我明天会抽空尝试一下。我是为 Nexus 5X 打造的。感谢您的帮助:)

标签: android kernel adb android-source


【解决方案1】:

据我从 AOSP 生成文件中了解到,DM-Verity 在构建时由设备的分区启用。

因此,例如,如果您打算为系统分区禁用它,则需要在目标 Makefile 中找到 PRODUCT_SYSTEM_VERITY_PARTITION 宏,删除/注释它,然后重新构建。

确切的位置可能会有所不同,因为 Makefile 层次结构是可自定义的,但我在 device.mk 中找到了它,用于 Huawei target on AOSP 存储库。

编辑:

另一种可能性是在位于 hereverity.mk 上完全禁用 DM-verity,但您需要测试禁用它是否会在构建期间触发其他错误。

【讨论】:

  • 所以我在我的 device.mk 和 verity.mk 中注释掉了 "setup dm-verity configs" 之后的 3 行,我设置了 PRODUCT_SUPPORTS_VERITY := false。应该这样做吗?
  • 感谢您的出色帮助!我对其进行了编辑,闪过 Gapps 并应用了它们。但是,当我打开 Google Play 商店时,它说 Play Services 已停止并卡在检查信息中,但我认为这是因为我在使用 Oreo 并且我发现了一个 beta 版、非官方的 OpenGapps Pico 版本,它可能仍然存在问题,所以我不认为这是问题了。这样的东西你在哪里学的哈哈。
  • 很高兴为您提供帮助!我也有点惊讶它在第一次尝试时就起作用了!我所做的只是在 AOSP 代码中搜索一些关键字,然后尝试遵循一些逻辑。顺便说一句,我认为这是了解 AOSP 的最佳方式。
  • 我应该尝试更多,目前我的第一个资源是 Google :) 无论如何感谢您的帮助! :D 您是否知道有关为覆盖设置我自己的自定义供应商文件夹设置的任何信息?我知道 Cyanogenmod 有供应商/cm,ParanoidAndroid 有供应商/pa,我正在寻找像这样的覆盖和其他东西。谢谢 :)
  • 抱歉,那天我没有阅读您的完整评论。你还在找那个吗?我记得在使用 AOSP 时看到了一些示例,但在给您答案之前,我需要阅读更多相关信息。
【解决方案2】:

PS:英文版本禁用 Verity。

lunch <target>_eng 应该可以工作。

否则,要禁用真实性,只需使用以下命令:

签入其中一个 make 文件:示例:base.mk 并做这样的事情:

# Disable Verity
PRODUCT_SYSTEM_VERITY_PARTITION :=
PRODUCT_VENDOR_VERITY_PARTITION :=
PRODUCT_PACKAGES := $(strip $(filter-out %verity.mk, $(PRODUCT_PACKAGES)))

【讨论】:

    猜你喜欢
    • 2013-02-10
    • 2018-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-19
    • 1970-01-01
    相关资源
    最近更新 更多