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上调试,可以查看内存信息,但是一下断点,就报错
在这里插入图片描述
搜不出原因,仅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 ubuntu22.04中

#!/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/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/400657.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Code-Audit(代码审计)习题记录4-5

4、习题4 题目内容如下&#xff1a; <?php error_reporting(0); show_source(__FILE__); $a $_REQUEST[hello]; eval("var_dump($a);"); 函数解释 $REQUEST — HTTP Request 变量&#xff0c;默认情况下包含了 [$GET]&#xff0c;[$POST] 和 [$COOKIE]的数…

Git合并固定分支的某一部分至当前分支

在 Git 中&#xff0c;通常使用 git merge 命令来将一个分支的更改合并到另一个分支。如果你只想合并某个分支的一部分代码&#xff0c;可以使用以下两种方法&#xff1a; 1.批量文件合并 1.1.创建并切换到一个新的临时分支 首先&#xff0c;从要合并的源分支&#xff08;即要…

S281 LoRa网关助力智慧城市建设的智能交通管理

S281 LoRa网关作为智慧城市建设中的重要组成部分&#xff0c;发挥着关键的作用&#xff0c;特别是在智能交通管理方面。通过连接各类传感器设备和物联网终端&#xff0c;S281 LoRa网关实现了对城市交通系统的远程监控、智能调度和信息化管理&#xff0c;为城市交通管理部门提供…

学习鸿蒙基础(5)

一、honmonyos的page路由界面的路径 新建了一个page,然后删除了。运行模拟器的时候报错了。提示找不到这个界面。原来是在路由界面没有删除这个page。新手刚接触找了半天才找到这个路由。在resources/base/profile/main_pages.json 这个和微信小程序好类似呀。 吐槽&#xf…

MKS T3BI集成蝶阀说明T3B-T3PRS-232Supplement

MKS T3BI集成蝶阀说明T3B-T3PRS-232Supplement

常见的排序算法整理

1.冒泡排序 1.1 冒泡排序普通版 每次冒泡过程都是从数列的第一个元素开始&#xff0c;然后依次和剩余的元素进行比较&#xff0c;若小于相邻元素&#xff0c;则交换两者位置&#xff0c;同时将较大元素作为下一个比较的基准元素&#xff0c;继续将该元素与其相邻的元素进行比…

人工智能_CPU安装运行ChatGLM大模型_安装清华开源人工智能AI大模型ChatGlm-6B_004---人工智能工作笔记0099

上一节003节我们安装到最后,本来大模型都可以回答问题了,结果, 5分钟后给出提示,需要GPU,我去..继续看官网,如何配置CPU运行 没办法继续看: https://github.com/THUDM/ChatGLM-6B 这里是官网可以看到 需要gcc的版本是11.3.0,这里我们先没有去安装,直接试试再说 yum instal…

在UE5中使用OverlayMaterial制作多材质效果

UE5.1中新增了OverlayMaterial&#xff0c;可以让物体套用2个材质球效果&#xff0c;如A材质球为正常材质内容&#xff0c;B材质球为菲涅尔&#xff0c;或是B材质球是法线外拓描边等&#xff0c;该功能类似Unity的多pass效果&#xff0c;方便了日常使用。 下面就讲将怎么用Ove…

手把手教你如何搭建性能测试环境

前言 在进行性能则试前&#xff0c;需要完成性能测试的搭建工作&#xff0c;一般包括硬件环境、软件环境及网络环境&#xff0c;可以要求配置和开发工程师协助完成&#xff0c;但是作为一个优秀性能测试工程师&#xff0c;这也是你的必备技能之一。 性能测试环境与功能测试环…

4款文案神器,为你写作高质量文案

4款文案神器&#xff0c;为你写作高质量文案!在当今信息爆炸的时代&#xff0c;写作成为了一项重要的技能&#xff0c;无论是在工作中、学习中还是生活中&#xff0c;我们都需要用文字来传达信息、表达想法。然而&#xff0c;要写出高质量的文案并非易事&#xff0c;需要不断地…

开源软件的影响力及未来发展趋势

开源软件的影响力 在当今数字化时代&#xff0c;开源软件已经成为技术创新、商业模式和安全风险等方面不可或缺的一部分。本文将从开源软件如何推动技术创新、开源软件的商业模式、开源软件的安全风险、开源软件的未来发展趋势以及开源软件在各行业的应用案例几个方面进行深入…

如何利用Shopee卖家中心资源和策略进行有效选品?

在Shopee卖家中心进行选品是提高产品市场竞争力和销售业绩的关键环节。为了帮助卖家更好地利用Shopee提供的资源和策略进行选品&#xff0c;以下是一些实用建议&#xff1a; 先给大家推荐一款shopee知虾数据运营工具知虾免费体验地址&#xff08;复制浏览器打开&#xff09;&a…

【力扣hot100】刷题笔记Day7

前言 身边同学已经陆陆续续回来啦&#xff0c;舍友都开始投简历了&#xff0c;我也要加油啦&#xff01;刷完hot100就投&#xff01; 73. 矩阵置零 - 力扣&#xff08;LeetCode&#xff09; 标记数组&#xff1a;空间复杂度O(mn) class Solution:def setZeroes(self, matrix:…

第十七届“挑战杯”广东大学生课外学术科技作品比赛感想

博主曾在2023年参加了第十七届“挑战杯”广东大学生课外学术科技作品比赛&#xff0c;也就是人们俗称的大挑&#xff0c;在团队赛里面含金量应该是排在第一档的了&#xff0c;当初我们有幸作为学校唯一一支科技创新B类进入到线下答辩&#xff0c;线下答辩就是区分银奖和金奖和特…

设计模式-创建型模式-抽象工厂模式

抽象工厂模式&#xff08;Abstract Factory Pattern&#xff09;&#xff1a;提供一个创建一系列相关或相互依赖对象的接口&#xff0c;而无须指定它们具体的类。抽象工厂模式又称为Kit模式&#xff0c;它是一种对象创建型模式。 由于工厂方法模式中的每个工厂只生产一类产品&…

MySQL锁相关总结|悲观锁、乐观锁、读锁、写锁、表锁、行锁、页面锁、间隙锁、临键锁

MySQL锁总体结构 MySQL 的锁上可以分成三类:总体、类型、粒度。 总体上分成两种:乐观锁和悲观锁类型上也是两种:读锁和写锁锁的粒度上可以分成五种:表锁,行锁,页面锁,间隙锁,临键锁下面我们就来详细讲一下这些锁 1. 悲观锁 悲观锁对于数据库中数据的读写持悲观态度,即…

阿里同学聊测试开发与测试平台

在一线大厂&#xff0c;没有测试这个岗位&#xff0c;只有测开这个岗位&#xff0c;即使是做业务测试&#xff0c;那么你的title也是测开。 所以想聊一聊测开的看法&#xff0c;但不代表这是正确的看法&#xff0c;仅供参考。 没来阿里之前我对测开的看法 一直以为专职做自动…

信钰证券:特斯拉掉队,英伟达冲锋!

截至当地时间2月16日收盘&#xff0c;美股三大指数上周累跌&#xff0c;结束五周连涨。其中&#xff0c;道指累计下跌0.11%&#xff0c;标普500指数周内跌幅为0.42%&#xff0c;以科技股为主的纳指则累跌1.34%。美股“科技七巨头”上周多数累跌&#xff0c;谷歌跌超5%&#xff…

【Node.js】介绍、下载及安装

一、什么是 Node.js Node.js 是一个独立的 JavaScript 运行环境&#xff0c;能独立执行 JS 代码&#xff0c;因为这个特点&#xff0c;它可以用来编写服务器后端的应用程序 前端工程化&#xff1a;开发项目直到上线&#xff0c;过程中集成的所有工具和技术 Node.js 是前端工程…

基于python-socket构建任务服务器(基于socket发送指令创建、停止任务)

在实现ia业务服务器时需要构建一个python-socket客户端&#xff0c;1、要求能与服务器保持心跳连接&#xff0c;每10秒钟发送一次心跳信号&#xff1b;2、要求能根据socket服务器发送的指令创建或终止一个定时任务。 为此以3个类实现该功能&#xff0c;分别为socket通信类&…