diff -uNr apk-tools-2.10.3/src/archive.c apk-tools-2.10.3.mod/src/archive.c --- apk-tools-2.10.3/src/archive.c 2018-11-15 15:09:07.000000000 +0200 +++ apk-tools-2.10.3.mod/src/archive.c 2018-11-19 17:36:03.835900565 +0200 @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include @@ -441,7 +442,9 @@ struct apk_istream *is, apk_progress_cb cb, void *cb_ctx) { +#ifndef __ANDROID__ struct apk_xattr *xattr; +#endif const char *fn = extract_name ?: ae->name; int fd, r = -1, atflags = 0, ret = 0; @@ -487,12 +490,14 @@ return ret; } +#ifndef __ANDROID__ r = fchownat(atfd, fn, ae->uid, ae->gid, atflags); if (r < 0) { apk_error("Failed to set ownership on %s: %s", fn, strerror(errno)); if (!ret) ret = -errno; } +#endif /* chown resets suid bit so we need set it again */ if (ae->mode & 07000) { @@ -506,6 +511,7 @@ } /* extract xattrs */ +#ifndef __ANDROID__ if (!S_ISLNK(ae->mode) && ae->xattrs && ae->xattrs->num) { r = 0; fd = openat(atfd, fn, O_RDWR); @@ -527,6 +533,7 @@ if (!ret) ret = r; } } +#endif if (!S_ISLNK(ae->mode)) { /* preserve modification time */