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

时间:2017-08-29 20:14:29

标签: android kernel adb android-source

我正在从源代码构建AOSP,我希望能够将Google Apps软件包刷新到ROM上。但是,当手机重新启动时,谷歌应用程序不会被应用,有人说这可能是因为DM-Verity。

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

我知道有一个ADB命令" adb disable-verity"哪个有效,但我希望我的构建默认情况下禁用dm-verity。

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

2 个答案:

答案 0 :(得分:2)

据我所知,从AOSP makefile中可以看出,DM-Verity是在构建时由设备分区启用的。

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

确切的位置可能会有所不同,因为Makefile层次结构是可自定义的,但我在device.mkverity.mk内找到了它。

修改

另一种可能性是在位于Huawei target on AOSP private void LaunchCommandLineApp() { // For the example string ex4 = @"C:\Program Files\qpdf-7.0.b1\bin\qpdf.exe"; // Use ProcessStartInfo class ProcessStartInfo startInfo = new ProcessStartInfo(); startInfo.CreateNoWindow = false; startInfo.UseShellExecute = false; startInfo.RedirectStandardInput = true; startInfo.RedirectStandardError = true; startInfo.RedirectStandardOutput = true; startInfo.FileName = ex4; startInfo.WindowStyle = ProcessWindowStyle.Hidden; startInfo.Arguments = " --linearize input.pdf output.pdf"; try { // Start the process with the info we specified. // Call WaitForExit and then the using statement will close. using (Process exeProcess = Process.Start(startInfo)) { if (exeProcess != null) { string op = exeProcess.StandardOutput.ReadToEnd(); exeProcess.WaitForExit(); Console.WriteLine(op); } } } catch (Exception ex) { // Log error. } } 处完全禁用DM-verity,但您需要测试禁用它是否会在构建期间触发其他错误。

答案 1 :(得分:0)

PS:ENG版本无法使用Verit。

Sub JJ() Dim IE As New SHDocVw.InternetExplorer Dim hdoc As MSHTML.HTMLDocument Dim ha As String IE.Visible = True IE.navigate "https://www.nseindia.com/get-quotes/equity?symbol=DIVISLAB" Do While IE.readyState <> READYSTATE_COMPLETE Loop Set hdoc = IE.document ha = hdoc.getElementById("preOpenFp").innerText Debug.Print ha End Sub 应该可以工作。

否则,要禁用真实性,只需使用此:

检入其中一个make文件:示例:lunch <target>_eng 并执行以下操作:

base.mk