mac m1调试aarch64 android kernel最终方案

这篇具有很好参考价值的文章主要介绍了mac m1调试aarch64 android kernel最终方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题

这是之前的,调试android kernel的方案还是太笨重了
完美调试android-goldfish(linux kernel) aarch64的方法

然后,看GeekCon AVSS 2023 Qualifier,通过
sdk-repo-linux_aarch64-emulator-8632828.zip 进行启动
完整编译的aosp + kernnl,和 android studio下载的镜像可以正常调试,自己编译的就是不行,总是报错
mac m1调试aarch64 android kernel最终方案,pwn_cve_kernel,macos,android,linux pwn

在mac m1上调试,可以查看内存信息,但是一下断点,就报错
mac m1调试aarch64 android kernel最终方案,pwn_cve_kernel,macos,android,linux pwn
搜不出原因,仅Can't get kernel version from the kernel image file,说是emulator版本低了

解决

下载最新版本的sdk-repo-linux_aarch64-emulator就可以了
网址

https://ci.android.com/builds/branches/aosp-emu-master-dev/grid?

mac m1调试aarch64 android kernel最终方案,pwn_cve_kernel,macos,android,linux pwn
mac m1调试aarch64 android kernel最终方案,pwn_cve_kernel,macos,android,linux pwn

效果

mac m1调试aarch64 android kernel最终方案,pwn_cve_kernel,macos,android,linux pwn

使用

在mac m1中的aarch64 ubuntu22.04中文章来源地址https://www.toymoban.com/news/detail-835699.html

#!/bin/bash
set -ex

function LOG() {
    echo -e "\e[96m LOG : $1 \e[0m"
}
function INFO() {
    echo -e "\e[40;38;5;82m INFO: $1 \e[0m"
}
function ERROR() {
    echo -e "\e[41m ERROR: $1 \e[0m"
}

if [ $# -lt 2 ] || [ "$1" == "" ]; then
    ERROR "Usage: bash $0 emulator_path imgs_path"
    exit 1
fi

emulator_path=$1
imgs_path=$2
args=${@:3}

INFO "emulator_path: $emulator_path"
INFO "imgs_path: $imgs_path"
# INFO "args: $args"

set +e
ps -e | grep "qemu"
if [ -z $? ]; then
    echo "Killing prior emulator"
    pkill qemu
    sleep 3
else
    echo "No prior emulator"
fi
set -e

if [ ! -d ~/.android ]; then
    mkdir ~/.android
fi
if [ ! -f ~/.android/advancedFeatures.ini ]; then
    echo "Vulkan = off" >> ~/.android/advancedFeatures.ini
    echo "GLDirectMem = on" >> ~/.android/advancedFeatures.ini
fi

if [ ! -d $imgs_path ]; then
    if [ ! -f /root/A*.zip ]; then
        ERROR "No images"
        exit 1
    fi
    zipfile=$(realpath /root/A*.zip)
    unzip $zipfile -d /root/

    # unzipfile=$(realpath /root/mnt/wd2/buildout/*/*/files)
    # mv $unzipfile /root/
fi

if [ ! -d $emulator_path ]; then
    emuzip=$(realpath /root/*emulator*.zip)
    unzip $emuzip -d /root/
fi

if [ ! -d "$1" ]; then
    ERROR "Path not exsit"
    exit 1
fi


function runemu() {
    DIR=$imgs_path
    export ANDROID_PRODUCT_OUT=$DIR
    export ANDROID_BUILD_TOP=$DIR

    cd $DIR

    $emulator_path/emulator -system $DIR/system.img -data $DIR/userdata.img -ramdisk $DIR/ramdisk.img -kernel $DIR/kernel-ranchu -cache $DIR/cache.img -vendor $DIR/vendor.img -sysdir $DIR \
        -writable-system \
        -no-window  \
        -verbose \
        -show-kernel \
        -no-cache \
        -no-snapstorage \
        -no-audio \
        -no-snapshot \
        -wipe-data \
        -accel on -netdelay none -no-sim \
        -qemu -s -S -append 'nokaslr' -no-reboot \
        -cpu max -machine gic-version=max

# -no-snapshot-save \
# -no-snapshot-load \
    # PID=$!

    # python3 /root/emuinit.py  >> /root/1.log 2>&1 &

    # INFO "DONE"
}

runemu

# while true; do
#   tail -n 10 /tmp/qemu.log | while read line; do
#     if [[ $line == *"Kernel panic"* ]]; then
#         if ps -p $PID > /dev/null; then
#             kill -9 $PID
#         fi
#     fi  
#   done

#   if ! ps -p $PID > /dev/null; then
#     echo "Process exited unexpectedly, restarting" 
#     runemu
#     sleep 10
#   fi
#   sleep 3
# done

# bash runemu.sh /root/emulator/ /root/mnt/wd2/buildout/2023-06-16-06-44-59/12/files/arm64-v8a/
# bash /root/runemu.sh /root/emulator/ /root/arm64-v8a/

runemu.sh /root/emulator/ /root/arm64-v8a/

到了这里,关于mac m1调试aarch64 android kernel最终方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Ubuntu 22.04 LTS x86_64 docker容器方案同步aarch64架构openstack-train rpm源到本地 reposync

    操作日志 yeqiang@yeqiang-MS-7B23:~$ sudo docker run --rm -it -v $(pwd)/Downloads:/Downloads centos:7.9.2009 /bin/bash [root@9211fa7f8e01 /]# yum install epel-release -y Loaded plugins: fastestmirror, ovl Determining fastest mirrors  * base: ftp.sjtu.edu.cn  * extras: ftp.sjtu.edu.cn  * updates: mirrors.nju.edu.cn base                        

    2024年02月16日
    浏览(45)
  • mac m1芯片 pycharm使用etree报错:incompatible architecture(have ‘x86_64‘, need ‘arm64e‘)

    背景: 相同的代码,在同事mac电脑上运行正常,自己电脑会报错。自己电脑上的相关信息: mac m1 芯片,使用homebrew安装python3.9 pycharm配置虚拟环境,使用homebrew安装的python 运行 from lxml import etree报错: mach-o file, but is an incompatible architecture (have \\\'x86_64\\\', need \\\'arm64e\\\') [如图所示] 【

    2024年02月10日
    浏览(45)
  • 【bad CPU type in executable】 MAC M1无法使用 x86_64 架构应用,通过配置自动使用

    今天在使用protoc时发现会出现以下报错, bad CPU type in executable: protoc 首先可以看一下一下文章 https://support.apple.com/en-us/HT211861 https://developer.apple.com/documentation/apple-silicon/about-the-rosetta-translation-environment 可以通过安装rosetta来自动解析运行x86_64架构应用。 通常可以通过点击应用,

    2024年02月13日
    浏览(44)
  • Mac OS M1、M2 芯片虚拟机 VMware Fusion 安装Windows 11 Win 11 arm64虚拟机 双系统 教程

    请参考: https://mp.csdn.net/mp_blog/creation/editor/new/129279303

    2024年02月13日
    浏览(83)
  • MAC(适用于M1,M2芯片)下载Java8(官方 ARM64 JDK1.8)安装、配置环境,支持动态切换JDK

    官方下载地址 https://www.oracle.com/cn/java/technologies/downloads/ 这个是官方新发布的适配了M1、M2芯片的ARM64版本的jdk8,再也不用去第三方下载了,也不用满世界的去找第三方jdk缺少的jar包了,而且更快更强!! 可以下载免安装版, 这样就可以配置多个版本的jdk了,配置如下 使配置

    2024年02月08日
    浏览(79)
  • MAC(M1芯片)编译Java项目慢且发热严重问题解决方案

    使用idea编译项目等操作,经常性发热严重,并且时间慢。直到昨天编译一个项目用时30分钟,电脑温度很高,并且有烧灼的味道,于是有了此篇文章。 1、针对于编译慢的问题,首先想到就是内存不够,于是就通过活动监视器查看cpu使用情况;具体情况如下图所示(不是排查

    2024年04月12日
    浏览(29)
  • MAC M1芯片可下载的安卓模拟器Android Emulator

    最近在做h5+的移动端APP,使用HBuilderX打包运行的,用自己的安卓手机突然检测不到设备,就想下载一个Android模拟器,找了很多模拟器发现大部分都不支持M1芯片,看到有小伙伴下载了Android Emulator就想着试一下。 github可以搜索到,谷歌开源的测试版本。 Android Emulator 这是我百

    2024年02月03日
    浏览(36)
  • 解决MAC M1处理器运行Android protoc时出现的错误

    Protobuf是Google开发的一种新的结构化数据存储格式,一般用于结构化数据的序列化,也就是我们常说的数据序列化。这个序列化协议非常轻量级和高效,并且是跨平台的。目前,它支持多种主流语言,比传统的XML、JSON等方法更具优势。详细信息请参考:Google protocol buffer。但是

    2024年02月14日
    浏览(24)
  • M1芯片Mac+vmware fusion13+Centos9+final shell配置方案

    整了两天终于搞出来了! 背景:学习搭建kafka集群,想配置多台虚拟机试试 问题:目前网上的方案都是vmware+centos7+final shell。但是m1芯片的Mac并不能安装centos7或者8,我都踩了一遍坑,具体表现是安装界面按e没反应,原因我在外网找了一下,链接:问题描述 大意是,centos7或者

    2024年02月10日
    浏览(49)
  • MAC M1 Pro搭建移动端UI自动化测试环境--Android篇

    目前大家熟知的测试主要分为功能测试、接口测试、UI测试,本文重点介绍的则是UI测试 UI 测试 通常分为WEB 端和 移动端,前者主要是针对PC端的网站进行测试,主要是模拟各个浏览器的内核的兼容性,后者则是针对App Native、H5、Hybrid进行模拟测试,发现多机型的兼容性问题

    2023年04月22日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包