如何在不使用ADB的情况下禁用Android设备上的dm-verity?

问题描述:

我从源代码构建AOSP,并且希望能够将Google Apps包闪存到ROM中。但是,当手机重新启动时,谷歌应用程序不适用,有人说可能是因为DM-Verity。如何在不使用ADB的情况下禁用Android设备上的dm-verity?

我想知道如何禁用DM-Verity保护,这应该能够在内核源代码中禁用。我该如何开始做这件事?

我知道有一个ADB命令“adb disable-verity”可以工作,但我希望我的版本在默认情况下禁用dm-verity。

有人可以帮助我吗?感谢:)

+0

你的目标是什么?如果您尝试我建议的内容,请告诉我。 – Perazzo

+0

对不起,今天我不会在我的电脑上工作,但我会在明天尝试。我为Nexus 5X打造。感谢您的帮助:) – NateDev

据我所知,从AOSP makefiles,DM-Verity是由设备的分区在生成时启用。因此,例如,如果您打算为系统分区禁用它,则需要在目标Makefiles中找到PRODUCT_SYSTEM_VERITY_PARTITION宏,将其删除/注释并重新构建。

确切的位置可以变化,因为Makefile的层次结构是一种可定制的,但我发现device.mkHuawei target on AOSP回购。

编辑:

另一种可能性是在位于hereverity.mk在所有禁用DM-真理,但你需要测试,如果禁用它在生成过程中引发其他错误。

+0

所以我在device.mk和verity.mk中的“setup dm-verity configs”之后注释了3行,我设置了PRODUCT_SUPPORTS_VERITY:= false。应该这样做吗? – NateDev

+0

感谢您的精彩帮助!我编辑了这个,闪过Gapps并且他们被应用了。然而,当我打开Goog​​le Play Store时,它表示Play服务已停止并且停留在检查信息中,但我认为这是因为我在Oreo上,并且我发现一个测试版非官方版本的OpenGapps Pico,可能仍然存在问题,所以我不认为这是问题了。你在哪里学习这样的东西哈哈。 – NateDev

+0

我很乐意帮忙!我也有点惊讶它在第一次尝试的工作!我所做的只是在AOSP代码中搜索几个关键字,然后尝试遵循一些逻辑。顺便说一句,我认为这是了解AOSP的最佳方式。 – Perazzo