Add dtcompare tool and device tree validation test changes

Created dtcompare tool to compare 2 device trees. The tool traverses the
trees depth-first, and allows ignoring values of properties, and
skipping properties completely.
Avoid using diff.
Using FDT allows more flexibility in comparing device trees, such as
skipping over fields or validating their presence.
Some fields in the device tree are expected to exist and contain
separate data, and it should be validated that such fields exist. Other
fields can be ignored completely.

Bug: 360388014
Test: atest avf_backcompat_tests
Change-Id: Ib4d5f89bbc25e90bd47dd422f7966ab3f2910433
diff --git a/tests/backcompat_test/AndroidTest.xml b/tests/backcompat_test/AndroidTest.xml
new file mode 100644
index 0000000..dd8b43d
--- /dev/null
+++ b/tests/backcompat_test/AndroidTest.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2024 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<configuration description="Config to run backcompat_tests.">
+  <target_preparer class="com.android.tradefed.targetprep.RootTargetPreparer"/>
+    <target_preparer class="com.android.tradefed.targetprep.PushFilePreparer">
+        <option name="cleanup" value="true" />
+        <option name="push-file" key="avf_backcompat_tests" value="/data/local/tmp/avf_backcompat_tests" />
+    </target_preparer>
+    <test class="com.android.tradefed.testtype.rust.RustBinaryTest" >
+        <option name="module-name" value="avf_backcompat_tests" />
+        <!-- Run tests serially because the VMs may overwrite the generated Device Tree. -->
+        <option name="native-test-flag" value="--test-threads=1" />
+    </test>
+</configuration>