我正在努力实现类似的目标 https://github.com/volatilityfoundation/volatility/wiki/Android#initialize-the-android-build-environment。 以下是我正在使用的环境:
Ubuntu 14.04,Android Studio 2.3,Android NDK r14,模拟器-api22。
我在步骤交叉编译内核时遇到了困难。 我的目标是金鱼内核3.10 以下是我遵循的步骤。任何帮助都会非常感激。
方法1 :
export ARCH=arm
export SUBARCH=arm
export CROSS_COMPILE=~/android-ndk/android-ndk-r14/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-
教程建议我们必须以
运行下一个命令make goldfish_armv7_defconfig
但是当我检查了目录" android-source / arch / arm / configs /"那里没有这样的配置文件。一些教程建议我们可以只从内核2.6复制并粘贴文件,所以我做了同样的事情,然后添加
CONFIG_MODULES=y
CONFIG_MODULES_UNLOAD=y
CONFIG_MODULES_FORCE_UNLOAD=y
但是进一步
$ make
导致错误:
arch/arm/mm/mmu.c: In function 'build_mem_type_table':
arch/arm/mm/mmu.c:470:18: error: 'L_PTE_MT_VECTORS' undeclared (first use in this function)
vecs_pgprot |= L_PTE_MT_VECTORS;
^
arch/arm/mm/mmu.c:470:18: note: each undeclared identifier is reported only once for each function it appears in
arch/arm/mm/mmu.c: At top level:
arch/arm/mm/mmu.c:637:23: warning: 'early_pte_alloc_and_install' defined but not used [-Wunused-function]
static pte_t * __init early_pte_alloc_and_install(pmd_t *pmd,
^
make[1]: *** [arch/arm/mm/mmu.o] Error 1
make: *** [arch/arm/mm] Error
方法2 :
一切都与方法1相同,我只是更改了单个变量
export ARCH=arm64
然后运行
make ranchu_deconfig
但我得到了同样的错误。
方法3 :
$ export ARCH=arm
$ export SUBARCH=arm
$ export CROSS_COMPILE=~/android-ndk/android-ndk-r14/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-
$ make ranchu_defconfig
$ vim .config # added this to .config file
CONFIG_MODULES=y
CONFIG_MODULES_UNLOAD=y
CONFIG_MODULES_FORCE_UNLOAD=y
$ make
此命令成功运行:zImage found。
但是当我使用以下命令运行模拟器时
root@ubuntu:~/Android/Sdk/tools# ./emulator -avd Nexus5x22 -kernel ~/android-source2/android-source/arch/arm/boot/zImage -show-kernel –verbose
我收到的错误是" Linux内核太旧而无法运行ram disk": ram disk error