如何在不使用ADB的情况下禁用Android设备上的dm-verity?
我从源代码构建AOSP,并且希望能够将Google Apps包闪存到ROM中。但是,当手机重新启动时,谷歌应用程序不适用,有人说可能是因为DM-Verity。如何在不使用ADB的情况下禁用Android设备上的dm-verity?
我想知道如何禁用DM-Verity保护,这应该能够在内核源代码中禁用。我该如何开始做这件事?
我知道有一个ADB命令“adb disable-verity”可以工作,但我希望我的版本在默认情况下禁用dm-verity。
有人可以帮助我吗?感谢:)
据我所知,从AOSP makefiles,DM-Verity是由设备的分区在生成时启用。因此,例如,如果您打算为系统分区禁用它,则需要在目标Makefiles中找到PRODUCT_SYSTEM_VERITY_PARTITION
宏,将其删除/注释并重新构建。
确切的位置可以变化,因为Makefile的层次结构是一种可定制的,但我发现device.mk
为Huawei target on AOSP回购。
编辑:
另一种可能性是在位于hereverity.mk
在所有禁用DM-真理,但你需要测试,如果禁用它在生成过程中引发其他错误。
所以我在device.mk和verity.mk中的“setup dm-verity configs”之后注释了3行,我设置了PRODUCT_SUPPORTS_VERITY:= false。应该这样做吗? – NateDev
感谢您的精彩帮助!我编辑了这个,闪过Gapps并且他们被应用了。然而,当我打开Google Play Store时,它表示Play服务已停止并且停留在检查信息中,但我认为这是因为我在Oreo上,并且我发现一个测试版非官方版本的OpenGapps Pico,可能仍然存在问题,所以我不认为这是问题了。你在哪里学习这样的东西哈哈。 – NateDev
我很乐意帮忙!我也有点惊讶它在第一次尝试的工作!我所做的只是在AOSP代码中搜索几个关键字,然后尝试遵循一些逻辑。顺便说一句,我认为这是了解AOSP的最佳方式。 – Perazzo
你的目标是什么?如果您尝试我建议的内容,请告诉我。 – Perazzo
对不起,今天我不会在我的电脑上工作,但我会在明天尝试。我为Nexus 5X打造。感谢您的帮助:) – NateDev