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.
|
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 \
|
./build-android \
|
||||||
@@ -11443,14 +11445,20 @@ https://stackoverflow.com/questions/1809774/how-to-compile-the-android-aosp-kern
|
|||||||
download \
|
download \
|
||||||
build \
|
build \
|
||||||
;
|
;
|
||||||
./run \
|
./run-android \
|
||||||
--android-base-dir /path/to/your/hd \
|
--android-base-dir /path/to/your/hd \
|
||||||
--android-version 8.1.0_r60 \
|
--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
|
== About this repo
|
||||||
|
|
||||||
|
|||||||
@@ -60,10 +60,12 @@ https://github.com/cirosantilli/linux-kernel-module-cheat#android
|
|||||||
# The crappy android build system requires
|
# The crappy android build system requires
|
||||||
# https://stackoverflow.com/questions/7040592/calling-the-source-command-from-subprocess-popen
|
# https://stackoverflow.com/questions/7040592/calling-the-source-command-from-subprocess-popen
|
||||||
self.sh.run_cmd('''\
|
self.sh.run_cmd('''\
|
||||||
. build/envsetup.sh
|
{}
|
||||||
lunch aosp_{}-eng
|
|
||||||
USE_CCACHE=1 make -j {}
|
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'],
|
cwd=self.env['android_dir'],
|
||||||
executable=shutil.which('bash'),
|
executable=shutil.which('bash'),
|
||||||
shell=True,
|
shell=True,
|
||||||
|
|||||||
@@ -721,6 +721,12 @@ Valid emulators: {}
|
|||||||
env['image'] = env['linux_image']
|
env['image'] = env['linux_image']
|
||||||
env['disk_image'] = env['qcow2_file']
|
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):
|
def add_argument(self, *args, **kwargs):
|
||||||
'''
|
'''
|
||||||
Also handle:
|
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