android: add working run script

This commit is contained in:
Ciro Santilli 六四事件 法轮功
2019-01-30 00:00:00 +00:00
parent 64dbf624db
commit 5b39fd2129
4 changed files with 55 additions and 7 deletions

View File

@@ -11434,7 +11434,9 @@ Big new features that are not yet working.
Remember: Android AOSP is a huge undocumented piece of bloatware. It's integration into this repo will likely never be super good.
https://stackoverflow.com/questions/1809774/how-to-compile-the-android-aosp-kernel-and-test-it-with-the-android-emulator/48310014#48310014
Verbose setup description: https://stackoverflow.com/questions/1809774/how-to-compile-the-android-aosp-kernel-and-test-it-with-the-android-emulator/48310014#48310014
Download, build and run with the prebuilt AOSP QEMU emulator and the AOSP kernel:
....
./build-android \
@@ -11443,14 +11445,20 @@ https://stackoverflow.com/questions/1809774/how-to-compile-the-android-aosp-kern
download \
build \
;
./run \
./run-android \
--android-base-dir /path/to/your/hd \
--android-version 8.1.0_r60 \
--kvm \
;
....
TODO hack the kernel and rebuild, hack userland and see message.
Sources:
* link:build-android[]
* link:run-android[]
TODO how to hack the AOSP kernel, userland and emulator?
Other archs work as well as usual with `--arch` parameter. However, running in non-x86 is very slow due to the lack of KVM.
== About this repo

View File

@@ -60,10 +60,12 @@ https://github.com/cirosantilli/linux-kernel-module-cheat#android
# The crappy android build system requires
# https://stackoverflow.com/questions/7040592/calling-the-source-command-from-subprocess-popen
self.sh.run_cmd('''\
. build/envsetup.sh
lunch aosp_{}-eng
{}
USE_CCACHE=1 make -j {}
'''.format(self.env['android_arch'], self.env['nproc']),
'''.format(
self.env['android_shell_setup'],
self.env['nproc']
),
cwd=self.env['android_dir'],
executable=shutil.which('bash'),
shell=True,

View File

@@ -721,6 +721,12 @@ Valid emulators: {}
env['image'] = env['linux_image']
env['disk_image'] = env['qcow2_file']
# Android.
env['android_shell_setup'] = '''
. build/envsetup.sh
lunch aosp_{}-eng
'''.format(self.env['android_arch'])
def add_argument(self, *args, **kwargs):
'''
Also handle:

32
run-android Executable file
View File

@@ -0,0 +1,32 @@
#!/usr/bin/env python3
import shutil
import common
class Main(common.LkmcCliFunction):
def __init__(self):
super().__init__(
description='''\
Run android AOSP on the AOSP pre-build emulator.
https://github.com/cirosantilli/linux-kernel-module-cheat#android
''',
)
self.add_argument('extra-emulator-args', default='', nargs='?')
def timed_main(self):
self.sh.run_cmd('''\
{}
emulator -show-kernel -verbose {}
'''.format(
self.env['android_shell_setup'],
self.env['extra_emulator_args']
),
cwd=self.env['android_dir'],
executable=shutil.which('bash'),
shell=True,
)
if __name__ == '__main__':
Main().cli()