不能 运行 我的金鱼内核与 android 模拟器
Can't run my goldfish kernel with android emulator
我正在尝试编译金鱼内核:
(是正确的分支吗?交叉编译工具链?)
git clone https://android.googlesource.com/kernel/goldfish
cd goldfish
git checkout -t origin/android-goldfish-3.10 -b android-goldfish-3.10
export ARCH=arm
export SUBARCH=arm
export PATH=/home/mrneumann/kurs/prebuilds/bin:$PATH
export CROSS_COMPILE=arm-eabi-
make goldfish_armv7_defconfig
make
我有 zImage
,我正在尝试 运行 使用模拟器:
emulator -verbose -show-kernel -avd hd4 -no-snapshot -kernel /home/mrneumann/kurs/goldfish/arch/arm/boot/zImage
模拟器启动,但它在运行我的内核之前停止(当我运行没有选项-kernel
时,模拟器继续工作并且启动动画开始,
但在我的情况下,屏幕是黑暗的,ADB 显示 "Device offline".
我的 AVD 是 Nexus S,API 15 armeabi-v7a。我做错了什么?
这里是说明,如何构建和运行你自己的金鱼内核和内核:
##build kernel
git clone https://android.googlesource.com/kernel/goldfish
cd goldfish
git checkout -t origin/android-goldfish-3.4 -b android-goldfish-3.4
make ARCH=arm goldfish_armv7_defconfig
make ARCH=arm SUBARCH=arm CROSS_COMPILE=/<path>/prebuilds/bin/arm-eabi-
##build module http://xdshao.com/2018/05/30/Android-exploitation-Build-an-android-kernel-module/
##add to config:
# CONFIG_MODULES is not set
CONFIG_MODULES=y
CONFIG_MODULE_FORCE_LOAD=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
##delete from config
#CONFIG_NF_CONNTRACK_IPV6=y
#CONFIG_IP6_NF_IPTABLES=y
#CONFIG_IP6_NF_FILTER=y
#CONFIG_IP6_NF_TARGET_REJECT=y
#CONFIG_IP6_NF_TARGET_REJECT_SKERR=y
#CONFIG_IP6_NF_MANGLE=y
#CONFIG_IP6_NF_RAW=y
#CONFIG_NETFILTER_XT_MATCH_QTAGUID=y
make clean
make
##run emulator
./emulator -verbose -show-kernel -avd hd4 -engine classic -no-snapshot -kernel /<path>/kurs/zImage
##run module
cd ~/Android/Sdk/platform-tools/
#./adb kill-server
./adb push /<path>/hello.ko /data/local/tmp
./adb shell
cd /data/local/tmp
insmod hello.ko
rmmod hello
rm hello.ko
我正在尝试编译金鱼内核: (是正确的分支吗?交叉编译工具链?)
git clone https://android.googlesource.com/kernel/goldfish
cd goldfish
git checkout -t origin/android-goldfish-3.10 -b android-goldfish-3.10
export ARCH=arm
export SUBARCH=arm
export PATH=/home/mrneumann/kurs/prebuilds/bin:$PATH
export CROSS_COMPILE=arm-eabi-
make goldfish_armv7_defconfig
make
我有 zImage
,我正在尝试 运行 使用模拟器:
emulator -verbose -show-kernel -avd hd4 -no-snapshot -kernel /home/mrneumann/kurs/goldfish/arch/arm/boot/zImage
模拟器启动,但它在运行我的内核之前停止(当我运行没有选项-kernel
时,模拟器继续工作并且启动动画开始,
但在我的情况下,屏幕是黑暗的,ADB 显示 "Device offline".
我的 AVD 是 Nexus S,API 15 armeabi-v7a。我做错了什么?
这里是说明,如何构建和运行你自己的金鱼内核和内核:
##build kernel
git clone https://android.googlesource.com/kernel/goldfish
cd goldfish
git checkout -t origin/android-goldfish-3.4 -b android-goldfish-3.4
make ARCH=arm goldfish_armv7_defconfig
make ARCH=arm SUBARCH=arm CROSS_COMPILE=/<path>/prebuilds/bin/arm-eabi-
##build module http://xdshao.com/2018/05/30/Android-exploitation-Build-an-android-kernel-module/
##add to config:
# CONFIG_MODULES is not set
CONFIG_MODULES=y
CONFIG_MODULE_FORCE_LOAD=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
##delete from config
#CONFIG_NF_CONNTRACK_IPV6=y
#CONFIG_IP6_NF_IPTABLES=y
#CONFIG_IP6_NF_FILTER=y
#CONFIG_IP6_NF_TARGET_REJECT=y
#CONFIG_IP6_NF_TARGET_REJECT_SKERR=y
#CONFIG_IP6_NF_MANGLE=y
#CONFIG_IP6_NF_RAW=y
#CONFIG_NETFILTER_XT_MATCH_QTAGUID=y
make clean
make
##run emulator
./emulator -verbose -show-kernel -avd hd4 -engine classic -no-snapshot -kernel /<path>/kurs/zImage
##run module
cd ~/Android/Sdk/platform-tools/
#./adb kill-server
./adb push /<path>/hello.ko /data/local/tmp
./adb shell
cd /data/local/tmp
insmod hello.ko
rmmod hello
rm hello.ko