diff options
Diffstat (limited to 'en/devices/architecture/vintf')
-rw-r--r-- | en/devices/architecture/vintf/objects.html | 47 |
1 files changed, 43 insertions, 4 deletions
diff --git a/en/devices/architecture/vintf/objects.html b/en/devices/architecture/vintf/objects.html index a5e34a2c..825b20d9 100644 --- a/en/devices/architecture/vintf/objects.html +++ b/en/devices/architecture/vintf/objects.html @@ -4,6 +4,7 @@ <meta name="project_path" value="/_project.yaml" /> <meta name="book_path" value="/_book.yaml" /> </head> + {% include "_versions.html" %} <body> <!-- Copyright 2017 The Android Open Source Project @@ -30,18 +31,54 @@ on the schema, see <a href="#manifest-file-schema">Manifest file schema</a>). <h2 id="device-manifest-file">Device manifest</h2> <p>The Device manifest (provided by the device) consists of the vendor manifest -and the ODM manifest:</p> +and the ODM manifest.</p> <ul> <li>The vendor manifest specifies HALs, VNDK versions, etc. common to an SoC. It is recommended to be placed in the Android source tree at -<code>device/${VENDOR}/${DEVICE}/manifest.xml</code>, but multiple fragment +<code>device/<var>VENDOR</var>/<var>DEVICE</var>/manifest.xml</code>, but multiple fragment files can be used. For details, see <a href="/devices/architecture/vintf/resources.html#manifest-fragments">Generate DM from fragments</a>. </li> -<li>The ODM manifest overrides the vendor manifest and lists HALs specific to -the product.</li> +<li>The ODM manifest lists HALs specific to the product. VINTF Object loads the ODM manifest as + follows: + <ol> + <li>If <code><var>SKU</var></code> is defined (where <code><var>SKU</var></code> is the value of + the property <code>ro.boot.product.hardware.sku</code>), + <code>/odm/etc/vintf/manifest_<var>SKU</var>.xml</code> + </li> + <li><code>/odm/etc/vintf/manifest.xml</code></li> + <li>If <code><var>SKU</var></code> is defined, + <code>/odm/etc/manifest_<var>SKU</var>.xml</code></li> + <li><code>/odm/etc/manifest.xml</code></li> + </ol> +</li> +<li>VINTF Object loads the device manifest as follows: + <ol> + <li>If <code>/vendor/etc/vintf/manifest.xml</code> exists, combine the following: + <ol> + <li><code>/vendor/etc/vintf/manifest.xml</code></li> + <li>optional vendor manifest fragments</li> + <li>optional ODM manifest + <li>optional ODM manifest fragments</li> + </ol> + <li>If ODM manifest exists, combine ODM manifest with optional ODM manifest fragments.</li> + <li><code>/vendor/manfiest.xml</code> (legacy, no fragments)</li> + </ol> +Note that: + <ul> + <li>On legacy devices, the legacy vendor manifest and ODM manifest are used. The + ODM manifest may completely override the legacy vendor manifest.</li> + <li>On devices launched with Android {{ androidPVersionNumber }}, the ODM manifest is combined + with vendor manifest.</li> + <li>When combining a list of manifests, manifests that appear later in the list may override + tags in manifests that appear earlier in the list, provided that the tags in the later + manifest has attribute <code>override="true"</code>. For example, ODM manifest may override + some <code><hal></code> tags from vendor manifest. See documentation for attribute + <code>override</code> below.</li> + </ul> +</li> </ul> <p>This setup enables multiple products with the same board to share the same @@ -120,6 +157,7 @@ specify product-specific HALs).</p> <?xml version="1.0" encoding="UTF-8"?> <!-- Comments, Legal notices, etc. here --> <manifest version="1.0" type="device"> + <!-- camera 3.4 in vendor manifest is ignored --> <hal override="true"> <name>android.hardware.camera</name> <transport>hwbinder</transport> @@ -129,6 +167,7 @@ specify product-specific HALs).</p> <instance>legacy/0</instance> </interface> </hal> + <!-- NFC is disabled --> <hal override="true"> <name>android.hardware.nfc</name> <transport>hwbinder</transport> |