https://github.com/molikuner/android-development-32bit
Build your app on a 32bit Linux system
https://github.com/molikuner/android-development-32bit
32bit aapt aapt2 android build build-tools linux qemu
Last synced: 2 months ago
JSON representation
Build your app on a 32bit Linux system
- Host: GitHub
- URL: https://github.com/molikuner/android-development-32bit
- Owner: molikuner
- Created: 2018-08-03T16:04:55.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2018-12-17T15:48:17.000Z (over 6 years ago)
- Last Synced: 2025-02-04T19:49:37.667Z (4 months ago)
- Topics: 32bit, aapt, aapt2, android, build, build-tools, linux, qemu
- Language: Shell
- Homepage:
- Size: 4.88 KB
- Stars: 2
- Watchers: 2
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Android Development with 32bit Linux (Debian)
Google removed support for 32bit Linux for there build-tools for Android.
Last officially supported version is `23.0.3`. This version is too old for current development.The main problem is that aapt2 is a 64bit executable and won't run on 32bit.
Lately I found a solution for this problem.
You can emulate a 64bit system for exactly one executable with [qemu](https://www.qemu.org/).
But when just running it you will see the missing libraries.Those are in `/lib/x86_64-linux-gnu`.
## Setup
Obviously these libraries won't be found on a 32bit system because they are for 64bit.
This means installing them with apt will be difficult (at least I don't know how).- You will need [libc6](https://packages.debian.org/stretch/amd64/libc6), [libc6-dev](https://packages.debian.org/stretch/amd64/libc6-dev), [zlib1g](https://packages.debian.org/stretch/amd64/zlib1g) and [libgcc1](https://packages.debian.org/stretch/amd64/libgcc1).
You should download the deb packages for your system (64bit instead of 32bit) into a new working folder.
- Create a folder `fakeInstall` in this folder.
- Now run:```bash
dpkg -x libc6_2.24-11+deb9u3_amd64.deb fakeInstall
dpkg -x libc6-dev_2.24-11+deb9u3_amd64.deb fakeInstall
dpkg -x zlib1g_1.2.8.dfsg-5_amd64.deb fakeInstall
dpkg -x libgcc1_6.3.0-18+deb9u1_amd64.deb fakeInstall
```
(update the versions to yours)
This will install the packages into the `fakeInstall` folder.
- Now we need to put everything into the right place:
(attention when working with `sudo`!)
```bash
sudo mv fakeInstall/lib/x86_64-linux-gnu /lib/
sudo mkdir -p /lib64
sudo mv fakeInstall/lib64/ld-linux-x86-64.so.2 /lib64
```
- Basically the preparation is finished.
So let's install [qemu](https://www.qemu.org/). Luckily it's in the default apt list
(at least on debian `stretch`):
```bash
sudo apt-get update
sudo apt-get install qemu qemu-user
```
- Last thing to do is to use `qemu` with `aapt2` instead of only `aapt2````bash
mv $ANDROID_HOME/build-tools/28.0.1/aapt2 $ANDROID_HOME/build-tools/28.0.1/_aapt2
```
Now move the aapt2 script from this repo into `$ANDRID_HOME/build-tools/28.0.1/` and give it execution permission by
```bash
chmod +x $ANDROID_HOME/build-tools/28.0.1/aapt2
```
If you don't have a global ANDROID_HOME variable replace it with the corresponding path.
Replace the build-tools version with yours!
At some installations / in newer versions you also need to replace the `aapt2` in
`~/.gradle/caches/transforms-*/files-*/aapt2-*-linux.jar/*/aapt2-*-linux/` like above.
This is a cache which means you need to try to build it and replace it afterwards.
The `*` needs to be replaced with your specific versions (there should be only one at first).
- That's it. You can now build on 32bit Linux apps for Android.
Your working folder can be deleted. There is no reference to it.## Further Information
I have tested this:
```
$ uname -a
Linux Generic 4.9.0-7-686-pae #1 SMP Debian 4.9.110-1 (2018-07-05) i686 GNU/Linux$ qemu-x86_64 -version
qemu-x86_64 version 2.8.1(Debian 1:2.8+dfsg-6+deb9u4)
Copyright (c) 2003-2016 Fabrice Bellard and the QEMU Project developers
```
Maybe it also works on other distro than Debian.
Currently I can't test more than pure Debian.