summaryrefslogtreecommitdiff
path: root/src/adb.c
AgeCommit message (Collapse)AuthorFilesLines
2022-03-21adb: use qsort_rTimo Teräs1-33/+35
2022-03-21mkndx, adb: fix index searchingTimo Teräs1-40/+82
Additioal logic is needed to search objects on array: the object comparer needs separate modes to match index, template or exact object template. This should fix mkndx to be able to use old index. fixes #10828
2022-03-21mkndx: fix index generation for v2 and v3 packagesTimo Teräs1-0/+14
For v2 packages, the identity was never set. For v3 packages, the file size was never set. This fixes both issues.
2022-02-01mkpkg, adb: validate version and dependency formatTimo Teräs1-2/+2
Fail if the package or dependency version format is not valid. fixes #10807
2021-12-14adb: use sys/uio.h for iovec operationsAriadne Conill1-0/+1
readv/writev and struct iovec are declared in sys/uio.h per POSIX. using it without sys/uio.h is a GNU extension. ref #10794
2021-12-14everywhere: use stdlib.h for malloc(3) definition, not GNU-specific malloc.hAriadne Conill1-1/+0
musl implements support for malloc.h, but it is only a stub. we do not use any of the GNU-specific malloc interfaces, so just use POSIX stdlib.h instead. ref #10794
2021-10-27db, add: support adding v3 package filesTimo Teräs1-2/+2
2021-10-25mkpkg: make unique-id field a blobTimo Teräs1-0/+18
2021-09-13adb: fix --allow-untrusted to work againTimo Teräs1-4/+10
and fix the error code if untrusted adb is seen
2021-08-23trust: always use have valid struct apk_trust *Timo Teräs1-2/+0
Make sure we always have valid struct apk_trust * for code using it. Load the signing keys directly when being specified to produce sane error message if loading them fails.
2021-08-23remove IS_ERR_OR_NULLTimo Teräs1-2/+2
In most places where pointer can be an 'error' it cannot be null pointer. Further, in those cases just calling PTR_ERR() is not enough to handle the null case. Simplify code by removing this case. If NULL case needs to be handled, it's better to add separate check and return fixed error code in that case.
2021-07-30extract: use extraction api, and implement it for v3 packagesTimo Teräs1-5/+9
The extract applet now works with both v2 and v3 packages.
2021-07-26adb: fix some error handling pathsTimo Teräs1-7/+7
2021-07-25adb: fix error handling of non-adb filesTimo Teräs1-1/+4
2021-07-22adb: add a small adb blob header with versions and root objectTimo Teräs1-37/+59
2021-07-22adb: refactor struct adb_header to adb_file_headerTimo Teräs1-31/+29
In struct adb, do not keep the whole header, just the schema in host byte order.
2021-07-22adb: make adb mmap/stream parser more united, add ADB_BLOCK_DATAXTimo Teräs1-43/+54
Harden the error checking of expected block types and their order. Add ADB_BLOCK_DATAX as reserved for >1GB blocks.
2021-07-22adb, convndx: check istream_close resultTimo Teräs1-2/+1
2021-07-22io: make apk_istream_get/read() fail on incomplete readTimo Teräs1-3/+3
2021-07-22rework apk_istream_splice and apk_istream_teeTimo Teräs1-2/+1
- apk_istream_splice usage is converted to apk_stream_copy which is the newer variant. With caching enabled by default, this makes more sense mmapping or using separate buffers. - apk_istream_tee is reworked to write to apk_ostream, which simplifies quite a bit of various things
2021-07-22adb: remove the now unused get_default_int() hookTimo Teräs1-7/+1
It is no longer needed, and can be later reintroduced if needed.
2021-07-22adb: unify various interfaces to adb_m_processTimo Teräs1-90/+85
Removes code duplication, and puts important checks in one place. Support seamless decompression in adbdump.
2021-07-16check trust in adb_trust_write_signatures()Timo Teräs1-1/+3
Based on patch from Daniel Golle <daniel@makrotopia.org>
2021-06-19reduce misuse of error codes from errno.hTimo Teräs1-24/+30
2021-06-11extract: new applet to extract v2 packagesTimo Teräs1-8/+81
2021-06-11add basic abstraction for cryptographic operationsTimo Teräs1-42/+42
- basic digesting and signing apis (subject still to fine tuning) - update digest code, and adb signing for the thin wrapping layer - old v1 package and database handling not updated - default mkpkg file hash to sha256 ref #10744
2021-06-11mkpkg: new applet to create v2 packages with basic functionalityTimo Teräs1-26/+64
2021-06-02add adbgen applet to generate databases from it's text dumpTimo Teräs1-1/+37
2021-05-26add abstraction to adb "walking" - a sax like API to enumerate whole dbTimo Teräs1-2/+4
This converts 'adbdump' applet to generate adb_walk api callbacks, and implement gentext backend to generate the yaml-like text output.
2020-10-09rename adb_trust to apk_trust, and use it as package signature keystore tooTimo Teräs1-4/+118
2020-10-09adb: improve sorting features, sort installed-db package listingTimo Teräs1-29/+97
2020-10-09adb: introduce apk-tools database format, and few appletsTimo Teräs1-0/+802
This is a flat buffers inspired format that allows fast mmaped access to the data with low overhead, signature support and relatively good forward support.