+# FIXME: We would like to enable checksums when downloading
+# tar files, but they change each time as the tar metadata
+# differs: https://github.com/google/gitiles/issues/84
TERMUX_PKG_HOMEPAGE=http://elinux.org/Android_aapt
TERMUX_PKG_DESCRIPTION="Android Asset Packaging Tool"
-_TAG_VERSION=7.0.0
-_TAG_REVISION=14
+_TAG_VERSION=7.1.2
+_TAG_REVISION=33
TERMUX_PKG_VERSION=${_TAG_VERSION}.${_TAG_REVISION}
+TERMUX_PKG_REVISION=1
TERMUX_PKG_BUILD_IN_SRC=yes
TERMUX_PKG_DEPENDS="libexpat, libpng, libzopfli"
-TERMUX_PKG_CLANG=yes
termux_step_make_install () {
local _TAGNAME=${_TAG_VERSION}_r${_TAG_REVISION}
mkdir -p android-base
cd android-base
tar xf $ANDROID_BASE_INCLUDE_TARFILE
-
+ cd ../log
+ patch -p0 < $TERMUX_PKG_BUILDER_DIR/log.h.patch.txt
# Build libcutils:
mkdir -p $TERMUX_PKG_SRCDIR/{libcutils,androidfw}
"https://android.googlesource.com/platform/system/core/+archive/android-$_TAGNAME/libcutils.tar.gz" \
$LIBCUTILS_TARFILE
tar xf $LIBCUTILS_TARFILE
+ patch -p0 < $TERMUX_PKG_BUILDER_DIR/libcutils-patch.txt
$CXX $CXXFLAGS -isystem $AOSP_INCLUDE_DIR -c -o sockets.o sockets.cpp
$CXX $CXXFLAGS -isystem $AOSP_INCLUDE_DIR -c -o sockets_unix.o sockets_unix.cpp
sed -i 's%include <sys/_system_properties.h>%include <sys/system_properties.h>%' properties.c
tar xf $LIBUTILS_TARFILE
# From Android.mk:
#CallStack.cpp \
+ #SystemClock.cpp \
commonSources="\
FileMap.cpp \
JenkinsHash.cpp \
StopWatch.cpp \
String8.cpp \
String16.cpp \
- SystemClock.cpp \
Threads.cpp \
Timers.cpp \
Tokenizer.cpp \
rm -Rf $TERMUX_PREFIX/include/aosp/android-base
mv include/android-base $TERMUX_PREFIX/include/aosp
patch -p1 < $TERMUX_PKG_BUILDER_DIR/libbase-patch.txt
+ #logging.cpp \
libbase_src_files="\
file.cpp \
- logging.cpp \
parsenetaddress.cpp \
stringprintf.cpp \
strings.cpp \
libbase_linux_src_files="\
errors_unix.cpp"
# __USE_BSD for DEFFILEMODE to be defined by <sys/stat.h>.
- $CXX $CXXFLAGS $CPPFLAGS -std=c++11 \
+ $CXX $CXXFLAGS $CPPFLAGS \
+ -std=c++11 \
+ -include memory \
-D__USE_BSD \
-isystem $AOSP_INCLUDE_DIR \
$libbase_src_files $libbase_linux_src_files \
zip_archive.cc \
zip_archive_stream_entry.cc \
zip_writer.cc"
- sed -i 's%next_in = reinterpret_cast<const uint8_t\*>(data)%next_in = const_cast<uint8_t\*>(reinterpret_cast<const uint8_t\*>(data))%' zip_writer.cc
+ patch -p0 < $TERMUX_PKG_BUILDER_DIR/libziparchive.patch.txt
$CXX $CXXFLAGS $LDFLAGS -std=c++11 \
-DZLIB_CONST \
-isystem $AOSP_INCLUDE_DIR \
ZipFileRO.cpp \
ZipUtils.cpp"
sed -i 's%#include <binder/TextOutput.h>%%' ResourceTypes.cpp
- $CXX $CXXFLAGS $LDFLAGS -isystem $AOSP_INCLUDE_DIR \
+ $CXX $CXXFLAGS $CPPFLAGS $LDFLAGS -isystem $AOSP_INCLUDE_DIR \
-std=c++11 \
+ -include memory \
$commonSources \
- -DACONFIGURATION_SCREENROUND_ANY=0x00 \
- -DACONFIGURATION_SCREENROUND_NO=0x1 \
- -DACONFIGURATION_SCREENROUND_YES=0x2 \
- -DACONFIGURATION_SCREEN_ROUND=0x8000 \
-landroid-cutils \
-landroid-utils \
-landroid-ziparchive \
-shared \
-o $TERMUX_PREFIX/lib/libandroid-fw.so
-
-
# Build aapt:
AAPT_TARFILE=$TERMUX_PKG_CACHEDIR/aapt_${_TAGNAME}.tar.gz
test ! -f $AAPT_TARFILE && termux_download \
mkdir $TERMUX_PKG_SRCDIR/aapt
cd $TERMUX_PKG_SRCDIR/aapt
tar xf $AAPT_TARFILE
+ sed "s%\@TERMUX_PREFIX\@%${TERMUX_PREFIX}%g" $TERMUX_PKG_BUILDER_DIR/aapt-Main.cpp.patch.txt | patch -p1
$CXX $CXXFLAGS $CPPFLAGS $LDFLAGS \
-std=c++11 \
+ -include memory \
-DANDROID_SMP=1 \
-DNDEBUG=1 \
-DHAVE_ENDIAN_H=1 -DHAVE_POSIX_FILEMAP=1 -DHAVE_OFF64_T=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_PTHREADS=1 \
- -DACONFIGURATION_SCREENROUND_ANY=0x00 \
- -DACONFIGURATION_SCREENROUND_NO=0x1 \
- -DACONFIGURATION_SCREENROUND_YES=0x2 \
- -DACONFIGURATION_SCREEN_ROUND=0x8000 \
-isystem $AOSP_INCLUDE_DIR \
*.cpp \
-landroid-cutils -landroid-utils -landroid-fw -landroid-ziparchive \
# Remove this one for now:
rm -Rf $AOSP_INCLUDE_DIR
+
+ # Create an android.jar with AndroidManifest.xml and resources.arsc:
+ cd $TERMUX_PKG_TMPDIR
+ rm -rf android-jar
+ mkdir android-jar
+ cd android-jar
+ cp $ANDROID_HOME/platforms/android-26/android.jar .
+ unzip -q android.jar
+ mkdir -p $TERMUX_PREFIX/share/aapt
+ zip -q $TERMUX_PREFIX/share/aapt/android.jar AndroidManifest.xml resources.arsc
}