美文网首页
AOSP 开发相关

AOSP 开发相关

作者: 珩珩保镖 | 来源:发表于2024-12-23 17:44 被阅读0次

[TOC]
目录
一、win系统连接Linux服务器
  1.rclone
  2.2.scp
二、AOSP代码拉取和编译
  1.拉取AOSP代码
  2.编译AOSP代码
  3.AOSP源码根目录结构
三、日常涉及

AOSP 开发相关

AOSP 是 "Android Open Source Project"(Android 开源项目)的缩写。它是 Android 操作系统的开源版本,由 Google 主导并维护。AOSP 的目的是为移动设备提供一个开放源代码平台,使得制造商、开发者和爱好者可以自由地修改和定制操作系统以满足不同的需求

一、win系统连接Linux服务器

一般当前电脑为win系统;代码服务器是Linux系统;提供账户(e.g. zhangsan)后同事会告诉你服务器ip(e.g. 192.168.11.251)通过ssh连接到企业代码服务器

ssh zhangsan@192.168.11.251

为了方便连接我们一般会将公钥添加到~/.ssh/authorized_keys文件中

在win系统中生成ssh公钥:

按Win键并输入cmd 回车

输入ssh-keygen,然后按下Enter键开始生成密钥。一直按Enter,直至结束会生成C:\Users\用户名\.ssh\id_rsa.pub里面

打开C:\Users\zhangsan\.ssh\id_rsa.pub复制里面内容 "ssh-rsa AAAAB3...."粘贴到服务器~/.ssh/authorized_keys文件中

1.rclone

为了方便win操作我们可以通过rclone挂载到本地,挂载可以参考:https://blog.csdn.net/qq_40205510/article/details/139270962

关键是配置rclone.conf

[mybucket]
type = sftp
host = 192.168.11.251
user = zhangsan
key_file = ~/.ssh/id_rsa
shell_type = unix
md5sum_command = md5sum
sha1sum_command = sha1sum

配置后可以通过下面 指令挂载

rclone mount mybucket:/mnt/HDD/zhangsan y: --cache-dir D:\cache\251  --vfs-cache-mode full --vfs-fast-fingerprint --dir-cache-time 1m --poll-interval 30s

2.scp

如果不用rclone挂载也可以直接通过scp指令进行文件操作

#服务器 拷贝到win D盘
scp zhangsan@192.168.11.251:~/my3567/packages/apps/DeskClock/Android.bp D:\cod_3576\Desk\platform_packages_apps_DeskClock\Android.bp 

# win D盘 拷贝到 服务器
scp D:\cod_3576\Desk\platform_packages_apps_DeskClock\Android.bp  zhangsan@192.168.11.251:~/my3567/packages/apps/DeskClock/Android.bp

二、AOSP代码拉取和编译

1.拉取AOSP代码

#格式 repo init -u <URL of the Android source repository> -b android-14.0.0_rXX
repo init --repo-url=https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -u ssh://git@git.xxx -b rk3576 -m Android14.xml

repo sync

2.编译AOSP代码

source指令一般是固定的; lunch 后选择对应想编译的序号;./build.sh 后面参数需要根据自己需求,一般第一次需要全部编译;如果只修改部分通常用Au

source build/envsetup.sh 
lunch xx
./build.sh -Au -J12 

./build.sh 可用参数主要如下:

USAGE: [-U] [-CK] [-A] [-p] [-o] [-u] [-v VERSION_NAME]
WHERE: -U = build uboot
-C = build kernel with Clang
-K = build kernel
-A = build android
-p = will build packaging in IMAGE
-o = build OTA package
-u = build update.img
-v = build android with 'user' or 'userdebug'
-d = huild kernel dts name
-V = build version
-J = build jobs

有时候会 ./build_app.sh && ./build.sh -UCKAuo -J12 && package_ehome_ota

编译完成后img路径在 out/target/product/<device_name>/update.img; 有的路径可能不一样不如RK平台的在 rockdev\Image-rkxxx\update.img

如果只编译apk; 比如修改DeskClock可以cd packages/apps/DeskClock/ 修改后mm或mmp进行编译(注意需要已经source和lunch了) 编译后apk一般在out下

可以通过指令搜索find out -name DeskClock.apk 一般路径如下

out/target/product/<device_name>/product/app/DeskClock/DeskClock.apk

编译后的 APK有的是out/target/product/<device_name>/system/app/ 或 /data/app/

3.AOSP源码根目录结构

AOSP项目结构(简书): https://www.jianshu.com/p/fa0099c934ae

AOSP源码根目录结构(阿里社区): https://developer.aliyun.com/article/1598811

android aosp文件目录详解(csdn): https://download.csdn.net/blog/column/10702459/137239388

三、日常涉及

系统应用主要的路径在 packages\apps和frameworks\base\packages

e.g. 修改系统的Ui效果 frameworks/base/packages/SystemUI

rameworks/base/packages/SettingsProvider/res/values/defaults.xml 里面的 def_screen_off_timeout 更改默认屏保时间

e.g. 修改默认屏保布局 packages/apps/DeskClock/res/layout/desk_clock_saver.xml

修改framewor常修改 frameworks\base\services\core\java\com\android\server

e.g. 修改系统默认音量可以在 com.android.server.audio.AudioService的构造方法中修改

修改ota流程 修改build\make\tools\releasetools

可能涉及ota_from_target_files.py;ota_utils.py等修改

此外有时候修改源码发现功能可能没生效;可能是overlay机制导致可以查看device/<manufacturer>/<device>/overlay/

<manufacturer> 是设备制造商的名字
<device> 是具体设备的代号或名称。

相关文章

网友评论

      本文标题:AOSP 开发相关

      本文链接:https://www.haomeiwen.com/subject/ermpejtx.html