1. 要使用repo,首先需要确保已经安装了Git !!!
2.在根目录创建文件夹
mkdir ~/bin
3.创建一个文件repo
touch repo
4.把repo文件移动到bin文件中去
mv repo ~/bin/repo
5.下载安装清华大学的repo镜像源到bin文件夹中repo文件中去
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o ~/bin/repo
6.给repo文件或目录添加执行权限
chmod +x \bin/repo
7.将~/bin目录添加到你的PATH环境变量中,以便可以从任何位置调用repo命令
export PATH=$PATH:~/bin
8.更新仓库:repo在运行过程中会尝试访问官方的git源更新自己,可以通过设置环境变量REPO_URL来使用镜像源进行更新;如果想使用tuna的镜像源进行更新,可以将该内容复制到你的~/.bashrc中去
export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'
9.回到要下载仓库的文件夹,初始化仓库
repo init -v -u ssh://git仓库 -b 分支名 -m default.xml
10.同步仓库
repo sync
11.Android.bp 以java源码编译apk
android_app {
name: "myapp", //编译出的模块的名称,类似于Android.mk中的LOCAL_MODULE
certificate: "platform", //是否系统签名
//不用覆盖签名,使用原本打包的签名,和上面的只能2选一
//presigned:true,
platform_apis: true,
sdk_version: "system_current",
privileged: true, //是否生成到priv-app目录
host_supported: true, //指定模块是否支持主机构建
device_supported: true, //指定模块是否支持目标设备构建
installable: true, //指定模块是否可以被安装到系统镜像中
product_specific: true 指定编译出来放在/product/目录下(默认是放在/system目录下)
vendor: true, //指定编译出来放在/vendor/目录下(默认是放在/system目录下)
kotlincflags: ["-Xjvm-default=enable"],
optimize: { //optimize 用于指定编译时优化选项
proguard_flags_files: ["app/src/main/proguard.flags"],
},
libs: [
// Soong fails to automatically add this dependency because all the
// *.kt sources are inside a filegroup.
"kotlin-annotations",
],
srcs: [ //源文件,类似于Android.mk中的LOCAL_SRC_FILES,可以是一个文件列表
"path/to/your/app/src/**/*.java",
],
resource_dirs: [
"path/to/your/app/res",
],
manifest: "path/to/your/app/AndroidManifest.xml",
aidl: {
local_include_dirs: ["SystemUpdaterSDK/src/main/aidl/"],
},
resource_dirs: ["app/src/main/res"],
// "//my/module": 按照Android Gradle构建系统结合bp文件时对于外部库的依赖格式添加
visibility: ["//my/module:visible_module"], //visibility:指定模块的可见性,确定哪些模块可以访问它。visibility: invalid visibility pattern "//frameworks/base/" must match //<package>:<module>
, //<package> or :<module>
//加载类库
shared_libs: ["lib1", "lib2"], //编译依赖的动态库lib1和lib2
static_libs: ["lib3", "lib4"], //编译依赖的静态库lib3和lib4
}
//预编译jar包,加载jar包
java_import {
name: "libs",
jars: ["app/libs/rxjava.jar", "app/libs/rxandroid.jar"","app/libs/zxing.jar"],
srcs: ["src/main/java/*.java"],
aidl: ["src/main/aidl/*.aidl"],
deps: ["my_static_library"], // 假设 my_static_library 就是被标记为 staticlib 的模块,确保名称准确
compileSdkVersion: 33,
}
12. Android系统源码编译Android.bp文件方式:
(1)在源码release目录,输入 make -j64 “name名称”
(2) cd 到Android.bp模块目录,输入"mm"
系统镜像:out/target/product/msmnile_gvmq/system.img