#1111007 android-libandroidfw: There is an undefined symbol in libandroidfw.so: ExtractEntryToFile(ZipArchive*, ZipEntry*, int).

Package:
android-libandroidfw
Source:
android-libandroidfw
Description:
Android utility library
Submitter:
Robert Heller
Date:
2025-08-14 15:43:02 UTC
Severity:
normal
Tags:
#1111007#5
Date:
2025-08-13 13:04:05 UTC
From:
To:
Dear Maintainer,

   * What led up to the situation?
I am trying to build a package for the Android system.

   * What exactly did you do (or not do) that was effective (or
     ineffective)?
/usr/bin/aapt2 -v

   * What was the outcome of this action?
/usr/bin/aapt2: symbol lookup error: /usr/lib/aarch64-linux-gnu/android/libandroidfw.so.0: undefined symbol: _Z18ExtractEntryToFileP10ZipArchiveP8ZipEntryi
   * What outcome did you expect instead?
Get the version number of aapt2

I did some additional exploration:

marchhare% nm -D --demangle -A /usr/lib/aarch64-linux-gnu/android/lib* | grep ExtractEntryToFile
/usr/lib/aarch64-linux-gnu/android/libandroidfw.so.0:                 U ExtractEntryToFile(ZipArchive*, ZipEntry*, int)
/usr/lib/aarch64-linux-gnu/android/libziparchive.so:000000000001c508 T ExtractEntryToFile(ZipArchive*, ZipEntry64 const*, int)
/usr/lib/aarch64-linux-gnu/android/libziparchive.so:000000000001c470 T ExtractEntryToFile(ZipArchive*, ZipEntry const*, int)
/usr/lib/aarch64-linux-gnu/android/libziparchive.so.0:000000000001c508 T ExtractEntryToFile(ZipArchive*, ZipEntry64 const*, int)
/usr/lib/aarch64-linux-gnu/android/libziparchive.so.0:000000000001c470 T ExtractEntryToFile(ZipArchive*, ZipEntry const*, int)

I also used apt-get to download the sources and attempted to rebuild the
package from source, but encounted errors there:

marchhare% dpkg-buildpackage
dpkg-buildpackage: info: source package android-platform-frameworks-base
dpkg-buildpackage: info: source version 1:10.0.0+r36-10
dpkg-buildpackage: info: source distribution unstable
dpkg-buildpackage: info: source changed by Roger Shimizu <rosh@debian.org>
 dpkg-source --before-build .
dpkg-buildpackage: info: host architecture arm64
 debian/rules clean
dh clean --with bash-completion
   dh_clean
 dpkg-source -b .
dpkg-source: info: using source format '3.0 (quilt)'
dpkg-source: info: building android-platform-frameworks-base using existing ./android-platform-frameworks-base_10.0.0+r36.orig.tar.xz
dpkg-source: info: using patch list from debian/patches/series
dpkg-source: warning: ignoring deletion of file media/native/midi/include/Doxyfile.orig, use --include-removal to override
dpkg-source: info: building android-platform-frameworks-base in android-platform-frameworks-base_10.0.0+r36-10.debian.tar.xz
dpkg-source: info: building android-platform-frameworks-base in android-platform-frameworks-base_10.0.0+r36-10.dsc
 debian/rules binary
dh binary --with bash-completion
   dh_update_autotools_config
   dh_autoreconf
   debian/rules override_dh_auto_configure
make[1]: Entering directory '/home/heller/android-platform-frameworks-base-10.0.0+r36'
mkdir -p debian/out
dh_auto_configure
make[1]: Leaving directory '/home/heller/android-platform-frameworks-base-10.0.0+r36'
   debian/rules override_dh_auto_build-arch
make[1]: Entering directory '/home/heller/android-platform-frameworks-base-10.0.0+r36'
dh_auto_build --buildsystem=makefile -- -f debian/libandroidfw.mk
	make -j4 -f debian/libandroidfw.mk
make[2]: Entering directory '/home/heller/android-platform-frameworks-base-10.0.0+r36'
mkdir --parents debian/out
clang++ libs/androidfw/ApkAssets.cpp libs/androidfw/Asset.cpp libs/androidfw/AssetDir.cpp libs/androidfw/AssetManager.cpp libs/androidfw/AssetManager2.cpp libs/androidfw/AttributeResolution.cpp libs/androidfw/ChunkIterator.cpp libs/androidfw/ConfigDescription.cpp libs/androidfw/Idmap.cpp libs/androidfw/LoadedArsc.cpp libs/androidfw/Locale.cpp libs/androidfw/LocaleData.cpp libs/androidfw/misc.cpp libs/androidfw/ObbFile.cpp libs/androidfw/PosixUtils.cpp libs/androidfw/ResourceTypes.cpp libs/androidfw/ResourceUtils.cpp libs/androidfw/StreamingZipInflater.cpp libs/androidfw/TypeWrappers.cpp libs/androidfw/Util.cpp libs/androidfw/ZipFileRO.cpp libs/androidfw/ZipUtils.cpp -o debian/out/libandroidfw.so.0 -g -O2 -ffile-prefix-map=/home/heller/android-platform-frameworks-base-10.0.0+r36=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -fPIC -DSTATIC_ANDROIDFW_FOR_TOOLS -std=gnu++17 -Wdate-time -D_FORTIFY_SOURCE=2 -DNDEBUG -UDEBUG -I/usr/include/android -Wno-c99-designator -Wno-gnu-designator -Wno-gnu-folding-constant -fmessage-length=0 -fno-exceptions -fno-strict-aliasing -no-canonical-prefixes  -Ilibs/androidfw/include -I/usr/include/android  -Wl,-z,relro -Wl,-z,now -fPIC -shared -Wl,-soname,libandroidfw.so.0 -Wl,-rpath=/usr/lib/aarch64-linux-gnu/android -lz -L/usr/lib/aarch64-linux-gnu/android -lziparchive -lutils -llog -lbase
libs/androidfw/ZipUtils.cpp:128:16: error: variable type 'FileReader' is an abstract class
    FileReader reader(fp);
               ^
/usr/include/android/ziparchive/zip_archive.h:337:16: note: unimplemented pure virtual method 'ReadAtOffset' in 'FileReader'
  virtual bool ReadAtOffset(uint8_t* buf, size_t len, off64_t offset) const = 0;
               ^
libs/androidfw/ZipUtils.cpp:136:14: error: variable type 'FdReader' is an abstract class
    FdReader reader(fd);
             ^
/usr/include/android/ziparchive/zip_archive.h:337:16: note: unimplemented pure virtual method 'ReadAtOffset' in 'FdReader'
  virtual bool ReadAtOffset(uint8_t* buf, size_t len, off64_t offset) const = 0;
               ^
libs/androidfw/ZipUtils.cpp:144:18: error: variable type 'BufferReader' is an abstract class
    BufferReader reader(in, compressedLen);
                 ^
/usr/include/android/ziparchive/zip_archive.h:337:16: note: unimplemented pure virtual method 'ReadAtOffset' in 'BufferReader'
  virtual bool ReadAtOffset(uint8_t* buf, size_t len, off64_t offset) const = 0;
               ^
3 errors generated.
make[2]: *** [debian/libandroidfw.mk:39: build] Error 1
make[2]: Leaving directory '/home/heller/android-platform-frameworks-base-10.0.0+r36'
dh_auto_build: error: make -j4 -f debian/libandroidfw.mk returned exit code 2
make[1]: *** [debian/rules:38: debian/out/libandroidfw.so] Error 25
make[1]: Leaving directory '/home/heller/android-platform-frameworks-base-10.0.0+r36'
make: *** [debian/rules:44: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2

#1111007#10
Date:
2025-08-14 15:34:00 UTC
From:
To:
See error #1068722 for more information.