mirror of
https://github.com/cirosantilli/linux-kernel-module-cheat.git
synced 2026-01-23 02:05:57 +01:00
android: add working run script
This commit is contained in:
16
README.adoc
16
README.adoc
@@ -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
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
32
run-android
Executable 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()
|
||||
Reference in New Issue
Block a user