首页 > 其他分享 >安卓逆向环境指北 rk3588 orangepi5b macM1 cuttlefish redroid

安卓逆向环境指北 rk3588 orangepi5b macM1 cuttlefish redroid

时间:2024-02-13 18:22:47浏览次数:42  
标签:指北 rk3588 -- 安卓 build redroid 镜像 cvd cuttlefish

省流

安卓现在有若干种方案

买个pixel6 真机 随便刷 rom多,文档直接看google官方的即可 缺点 贵 刷砖了难救

windows的安卓模拟器 傻瓜式部署 但是 安卓版本低 特征多 跑不了arm的so

AVD windows or mac or linux 有多个安卓版本 但是基本没办法自定义内核 想自定义内核再替换 最高只能支持到5.10

cuttlefish (rk3588 orangepi5b) 随便自定义内核 一键启动! 坏了一键remake 方便快捷 但是不是很方便自定义rom arm版本的cvdhost文件build不出 只能从ci里面偷 而且不支持各种arm板子的gpu加速 所以很卡

redroid arm or amd64 docker一键部署 傻瓜式操作 对于rk3588 只有几个docker可以gpu加速,但是很流畅(原神双开约35帧),对于mac arm芯片 直接使用pd部署redroid官方镜像即可直接gpu加速,对于amd64的linux ,可以上arm的转义层转移到arm,但是稳定性堪忧 总的来说可以方便自定义rom,但是内核和linux内核共享,不是很方便做自定义内核

环境

win11 wsl2 ubuntu22.04

orangepi5b

macbook air M1

rk3588 orangepi5b

板子环境配置

orange5b没有pd协商,不想烧板子就老实掏官方的5v4a充电器,或者掏出99元小米充电宝 最高支持到5v3a)

请刷系统 ubuntu22.04 5.10.160-rockchip server完美支持

action中的ubuntu的mainline的 刷入不开机 建议是别搞了

只有官方网站上的几个镜像才可以直接刷入emmc中 其他的系统 如armbian什么的 都要先刷入sd卡再进入系统刷入emmc中

armbian的6.8内核的镜像,通通不识别wifi模块,但是hdmi是可以用的( 似乎挑显示器 我的没问题

armbian不会自动开启ssh,需要显示屏鼠标键盘,

所以不使用armbian)

默认启动顺序是先sd卡 再emmc,即使sd卡是空的,也不会自动启动到emmc

ubuntu22.04 5.10.160-rockchip server

刷机后会自动重启到系统,插根网线or插显示屏键盘or串口调试

如果你刷了desktop的话 必须要显示器鼠标键盘手动操作)

我使用ssh,ip通过路由器后台或

alt text

然后通过netplan来链接wifi

network:
    ethernets:
        zz-all-en:
            dhcp4: true
            match:
                name: en*
            optional: true
        zz-all-eth:
            dhcp4: true
            match:
                name: eth*
            optional: true
    wifis:                                                                      
        wlan0:
            dhcp4: true                                                                  
            access-points:                                                                                      
                void HatsuneMiku():
                    password: "12345678900"                
            optional: true    

    version: 2

使用 bash <(curl -sSL https://linuxmirrors.cn/main.sh) 换个apt源

使用 bash <(curl -sSL https://linuxmirrors.cn/docker.sh)安装docker即可

redroid方案

redroid https://github.com/remote-android/redroid-doc

如果你用的和我同款设备和系统 那么pi的内核已经默认支持了redroid的相关配置

安装docker

然后根据官方库一键启动即可

开启gpu加速

安装相关gpu驱动

sudo add-apt-repository ppa:liujianfeng1994/panfork-mesa
sudo add-apt-repository ppa:liujianfeng1994/rockchip-multimedia
sudo apt update
sudo apt dist-upgrade
sudo apt install mali-g610-firmware rockchip-multimedia-config

然后使用如下之一的docker

chisbread/rk3588-gaming:redroid-firefly

registry.cn-hangzhou.aliyuncs.com/whsyf/dobox:rk3588-202303017

docker run -itd --rm --privileged \
    -v /data:/data \
    -p 5555:5555 \
    chisbread/rk3588-gaming:redroid-firefly \
    androidboot.redroid_height=1600 \
    androidboot.redroid_width=2560 \
    androidboot.redroid_dpi=480 \
    androidboot.redroid_gpu_mode=host \
    --mount=type=bind,source=/dev/mali0,destination=/dev/mali0

注意 这个启动之后,不会默认链接adb,你应该手动使用 adb connect 127.0.0.1:5555来链接

然后 scrcpy 链接即可

https://github.com/Genymobile/scrcpy

链接

cuttlefish

参考 https://source.android.com/docs/devices/cuttlefish?hl=zh-cn

for dir in base frontend; do
  cd $dir
  debuild -i -us -uc -b -d
  cd ..
done

这一步里面

里面frontend里面调用go build,要去google拉镜像,这一步由于网络会必定报错

export http_proxy也不管用

frontend/src/goutil里面

alt text

换一个代理即可

镜像

请去 https://ci.android.com/ 里面各个分支去拉

找到对应分支后

alt text

带cf表示是cuttlefish的镜像

aosp-main-throttled 分支是arm cf 主线

aosp-android13-gsi 等分支的cf arm64也可以跑

但是gsi 14的镜像似乎有一些问题 叠加层没法载入,导致每一次启动cuttlefish镜像都是全新的 需要重新部署环境

13 和 主线镜像都是好的

但是推荐使用android13 内核较新(5.15

主线的镜像的话 使用的so版本较新,导出函数名称有一些变化 导致frida不能使用

拉一个 aosp_cf_arm64_phone-img-xxxx.zip

和 cvd-host_package.tar.gz

解压到同一目录

然后 使用

HOME=$PWD ./bin/launch_cvd --resume=true --daemon 来启动cvd

resume 为true的话 是继承以前的数据

会自动通过web服务暴露 也可以使用scrcpy来链接)

http://192.168.1.5:1080/

alt text

使用HOME=$PWD ./bin/stop_cvd来关闭cvd 但是你在安卓中的操作有几率没保存

如果你需要保存 请先使用adb reboot重启安卓再关cvd)

kernel

https://source.android.google.cn/docs/devices/cuttlefish/kernel-dev

build kernel

使用 tools/bazel run --lto=thin --config=local //common-modules/virtual-device:virtual_device_aarch64_dist

来build

build出的新内核

使用

-kernel_path=/$PATH/$TO/common-android14-6.1/out/android14-6.1/dist/Image \
-initramfs_path=/$PATH/$TO/common-android14-6.1/out/android14-6.1/dist/initramfs.img

指定

然后注意 叠加层的数据不会在不同环境下保存,即你使用了两个kernel的话 数据是不通的(

build aosp

省流 build不出给cuttlefish用的aosp镜像 因为build不出cvd-host_package.tar.gz

aosp编译环境自己搜

嗯 如果你build了cf x86的 你应该在 /out/host/linux-x86/bin 找到cvd-host_package.tar.gz内的文件

如果你build了cf arm64的,你根本找不到cvd-host_package捏

尽管根据 https://sites.google.com/junsun.net/how-to-run-cuttlefish/home

文章所说 alt text

输出到了这里

或者根据mainline的配置文件 输出到这里
https://cs.android.com/android/platform/superproject/main/+/main:device/google/cuttlefish/host_package.mk?hl=zh-cn

alt text

但没有任何和cvd有关的文件被构建

实际上是有这个配置文件的 真的疑惑

alt text

经过搜索得知

alt text

没开源 绷不住了

但是也许可以拉ci中的host对应版本的源码来build 理论上是应该能使用的

mac m1 芯片

cuttlefish

需要支持嵌套虚拟化的linux环境 而mac上面所有的虚拟机或者docker方案都不支持嵌套虚拟化

但是Asahi Linux似乎是支持的 我的硬盘只有256g 没空间了 就没弄

redroid

直接使用pd 安装ubuntu22.04即可

使用 bash <(curl -sSL https://linuxmirrors.cn/main.sh) 换个apt源

使用 bash <(curl -sSL https://linuxmirrors.cn/docker.sh)安装docker即可

然后sudo su

apt install linux-modules-extra-`uname -r`
modprobe binder_linux devices="binder,hwbinder,vndbinder"
modprobe ashmem_linux

docker run -itd --rm --privileged \
    --pull always \
    -v /home/ltlly/Desktop/data:/data \
    -p 5555:5555 \
    redroid/redroid:13.0.0_64only-latest

docker镜像只能选择带64only的镜像 因为m芯片不支持arm32的了

启动之后丝滑流畅,直接支持gpu加速

想玩一些ebpf什么的 直接去改linux的内核即可

直接pd开个桥接 mac上adb connect 然后scrcpy链接即可

甚至我觉得应该安装ubuntu的server版本来省一点内存)

似乎 utm虚拟机也可以开gpu加速 显卡方案要选 mesa3d 但是我没搞了

标签:指北,rk3588,--,安卓,build,redroid,镜像,cvd,cuttlefish
From: https://www.cnblogs.com/FW-ltlly/p/18014692

相关文章

  • 【踩坑】Unity Android(安卓)平台 Render texture 有残留,即使调用 DiscardContents 还
    在编辑器环境下OK,打包成PC客户端也OK,但是打包成apk,在安卓手机上运行的时候就会有残留。 我的代码如下。主要是在LateUpdate()中,修改特定摄像机的cullmask,在捕捉到制定的rendertexture上(即此处的m_levelUnitRT)。 voidLateUpdate(){if(m_levelU......
  • Android Studio 只启动安卓模拟器的脚本实现
    基本上都是参考:https://blog.csdn.net/qq_39970857/article/details/122186784一.找到SDK安装路径这俩张懒得画图,是偷的)二.win+r打开cmd(反正不用管理权限,随便怎么打开)......
  • 扒开源安卓性能测试工具moblieperf源码——开发属于你自己的性能稳定性测试工具
    moblieperf下载和使用moblieperf由阿里巴巴开源的Android性能测试工具下载:官方源码地址mobileperfgithub使用:使用pycharm打开下载的项目使用只需要修改配置文件config.conf即可运行采集:a.mac、linux在mobileperf工具根目录下执行shrun.sh;b.windows双击run.bat配置......
  • 洛谷美化食用指北
    洛谷美化食用指北(蒟蒻的第一篇技术性文章)话不多说,直奔正题——1.洛谷主界面美化1.1氩洛谷脚本的安装和使用首先安装一个油猴扩展(非谷歌浏览器都可以,因为Google应用商店被墙了)然后去这个网站下载脚本,安装即可。刷新洛谷主页面,是不是焕然一新~2.洛谷个人主页的美化2......
  • NBEZ玩ys指北
    观前提醒:宁波二中禁止在校学生以任何方式玩电子游戏(除非放假了且你有办法进校),否则后果自负,因此该文章基本上就是纯理论众所周知,宁波二中每个班都配了台电脑,但那个电脑的感人配置肯定下不了ys(真就是个学校都一样呗)面对这种问题,ys玩家会怎么解决呢?1.云ys没试过我们班有个同学试......
  • 安卓服务的常见问题,性能优化以及应用场景剖析
    一、引言在安卓开发中,服务(Service)扮演着至关重要的角色,它们在没有用户界面的情况下,为用户提供了长时间的后台任务执行能力。本文将探讨服务常见问题、优化策略、应用场景以及开发过程中应注意的事项。二、应用场景服务作为安卓应用程序的重要组成部分,主要用于在后台执行持续性的、......
  • 迅为RK3588开发板ubuntu和window互传图形界面直接拖拽进行文件传输
    确保以及安装了VMwareTools。如下图所示表示已安装过了。和windows端文件夹间传输一样直接拖拽进去即可,如下图所示:也可拖拽到终端,如下图所示:更多内容可以B站搜索迅为RK3588开发板......
  • 安卓动态链接库文件体积优化探索实践
    背景介绍应用安装包的体积影响着用户下载量、安装时长、用户磁盘占用量等多个方面,据GooglePlay统计,应用体积每增加6MB,安装的转化率将下降1%。   安装包的体积受诸多方面影响,针对dex、资源文件、so文件都有不同的优化策略,在此不做一一展开,本文主要记录了在研发时针对动态......
  • appium模拟安卓手机按键
    APPium自动化过程中,可能会需要模拟操作手机按键,如返回键,home键,音量键等等。要模拟按键操作得用到keyevent方法,参数如下keyevent(keycode,metastate=None)metastate:默认值不用填操作手机音量键和返回键的代码如下:fromappiumimportwebdriverimporttimefromappium.webd......
  • 「悬浮捷径SoftCircle」安卓平台的hao123,一键打开万物
    罗老师的onestep一步发布之前,终端的打开形式还拘泥于桌面和负一屏这种方式够简洁,但缺点明显:1.入口单一性:只能在app首页和各种扫一扫之间选择和切换2.操作复杂:入口切换需要频繁的进入退出桌面,步骤过于繁杂以下是悬浮捷径SoftCircle的解决方式1.入口的丰富性:安卓平台......