[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项目结构(简书): http://08643.cn/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> 是具体设备的代号或名称。