mirror of
https://github.com/bylaws/libadrenotools
synced 2024-11-21 14:29:15 -07:00
Add ADPKG format description
This commit is contained in:
parent
d645cca164
commit
9c7d8401b8
1 changed files with 96 additions and 0 deletions
96
tools/ADPKG.md
Normal file
96
tools/ADPKG.md
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
# Android Driver Package Format
|
||||||
|
|
||||||
|
## Contents
|
||||||
|
- `meta.json` that follows `Schema`
|
||||||
|
- `<driver>.so` main driver shared library
|
||||||
|
- `*.so` all libraries depended on by the main driver library, these must have their sonames altered if they wish to replace the system version of the library
|
||||||
|
|
||||||
|
## Example
|
||||||
|
`meta.json`:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"schemaVersion": 1,
|
||||||
|
"name": "Qualcomm v615 Vulkan driver",
|
||||||
|
"description": "Proprietary Vulkan driver for Adreno 6xx and Adreno 7xx",
|
||||||
|
"author": "ByLaws",
|
||||||
|
"packageVersion": "2",
|
||||||
|
"vendor": "Qualcomm",
|
||||||
|
"driverVersion": "0.615.0",
|
||||||
|
"minApi": 27,
|
||||||
|
"libraryName": "vulkan.ad0615.so"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
`vulkan.ad0615.so`: main patched driver
|
||||||
|
`notadreno_utils.so`, `notdmabufheap.so`, `notgsl.so`, `notllvm-glnext.so`, `notllvm-qgl.so`: patched-soname versions of libraries specific to each driver version
|
||||||
|
`android.hardware.graphics.mappershim.so`, `vendor.qti.hardware.display.mapperextensionsshim.so`, `vendor.qti.hardware.display.mappershim.so`: qtimapper-shim libs
|
||||||
|
|
||||||
|
## Creation
|
||||||
|
I recommend running blob-patcher.py to patch a set of blobs from a device dump with mapper ver as 5, then copying in the qtimapper-shim files from the adrenotools releases page.
|
||||||
|
```bash
|
||||||
|
$ mkdir outpkg
|
||||||
|
$ patch.py <device dump> outpkg vulkan.adreno.so vulkan.ad0615.so 5
|
||||||
|
$ vim outpkg/meta.json
|
||||||
|
$ cp qtimapper-shim-rel/* outpkg
|
||||||
|
```
|
||||||
|
|
||||||
|
## Schema
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||||
|
"title": "ADPKG Schema",
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"schemaVersion": {
|
||||||
|
"type": "number",
|
||||||
|
"example": 1
|
||||||
|
},
|
||||||
|
"name": {
|
||||||
|
"type": "string",
|
||||||
|
"example": "Qualcomm Adreno Driver"
|
||||||
|
},
|
||||||
|
"vendor": {
|
||||||
|
"enum": [
|
||||||
|
"Qualcomm",
|
||||||
|
"Mesa"
|
||||||
|
],
|
||||||
|
},
|
||||||
|
"driverVersion": {
|
||||||
|
"type": "string",
|
||||||
|
"pattern": "^[0-9]+.[0-9]+.[0-9]+(-.+)?$",
|
||||||
|
"example": "512.604.0"
|
||||||
|
},
|
||||||
|
"author": {
|
||||||
|
"type": "string",
|
||||||
|
"example": "Billy Laws"
|
||||||
|
},
|
||||||
|
"description": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "Additional description of the driver, this shouldn't contain redundant information that is already covered by the other fields such as the version and only denote details important for the user"
|
||||||
|
},
|
||||||
|
"packageVersion": {
|
||||||
|
"type": "string",
|
||||||
|
"example": "3029-bylaws"
|
||||||
|
},
|
||||||
|
"minApi": {
|
||||||
|
"type": "number",
|
||||||
|
"description": "The minimum Android API version required by the driver to function correctly",
|
||||||
|
"example": 27
|
||||||
|
},
|
||||||
|
"libraryName": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The name of the main shared library object",
|
||||||
|
"example": "vulkan.adreno.so"
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"schemaVersion",
|
||||||
|
"name",
|
||||||
|
"author",
|
||||||
|
"packageVersion",
|
||||||
|
"vendor",
|
||||||
|
"driverVersion",
|
||||||
|
"minApi",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
Loading…
Reference in a new issue