首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何将预编译的二进制文件集成到AOSP Android build中?

将预编译的二进制文件集成到AOSP Android build中的步骤如下:

  1. 将预编译的二进制文件放置到AOSP源代码树中的合适位置。可以创建一个新的目录,例如"vendor/<厂商名>/<设备名>/proprietary",将二进制文件放置在该目录下。
  2. 在AOSP源代码树的根目录下,创建一个新的.mk文件,用于描述如何将二进制文件集成到Android build中。可以命名为"Android.mk"。
  3. 在Android.mk文件中,使用以下语法来描述二进制文件的集成:
代码语言:txt
复制
LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

# 设置模块的名称
LOCAL_MODULE := <模块名>

# 设置模块的类型为预编译库
LOCAL_MODULE_TAGS := optional

# 设置模块的源文件路径
LOCAL_SRC_FILES := <二进制文件路径>

# 设置模块的安装路径
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)

include $(BUILD_PREBUILT)

其中,需要替换的内容有:

  • <模块名>:指定模块的名称,可以根据实际情况进行命名。
  • <二进制文件路径>:指定预编译的二进制文件的路径,相对于Android.mk文件所在的目录。
  1. 保存并关闭Android.mk文件。
  2. 在AOSP源代码树的根目录下,找到"build/target/product"目录,进入该目录。
  3. 找到当前设备的配置文件,通常命名为"<设备名>.mk",例如"full_<设备名>.mk"。
  4. 在设备配置文件中,添加以下内容来引用刚刚创建的Android.mk文件:
代码语言:txt
复制
# 引用预编译库的Android.mk文件
$(call inherit-product, vendor/<厂商名>/<设备名>/proprietary/Android.mk)

其中,需要替换的内容有:

  • <厂商名>:指定厂商的名称,可以根据实际情况进行命名。
  • <设备名>:指定设备的名称,可以根据实际情况进行命名。
  1. 保存并关闭设备配置文件。
  2. 在AOSP源代码树的根目录下,执行编译命令,例如"make"或"m",开始构建Android系统。

完成上述步骤后,预编译的二进制文件将会被集成到AOSP Android build中,并在构建过程中被编译和安装到目标设备中。

注意:以上步骤仅适用于AOSP Android build,具体的操作步骤可能会因不同的Android版本和设备而有所差异。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Rust + Android 集成开发设计

让我们来看看 Android 官方集成开发设计方案—— 自 2019 年以来,Android 团队一直致力于将 Rust 程序设计语言引入 Android 开源项目(AOSP,以作为 Android...对于 Android 来说,重要问题是:评估如何将 Rust 最佳地融入 Android 构建系统。目前,在 Soong 构建系统,对 Rust 提供了支持。...这对于集成 Soong 增量构建支持来说,太粗糙了,后者期望更小编译单元。这种支持,对于在 Android 扩大 Rust 使用,是必要。...直接使用 Rust 编译器,则可以避免这些问题,并且,这与我们在 AOSP 编译其它代码方式是一致。它提供了对构建过程最大控制,并简化了与 Android 现有构建系统集成。...无需 build.rs 脚本 build.rs 脚本编译为 Rust 二进制文件,它在构建过程执行 Cargo 构建,以及处理生成任务。

2.1K10

Vdex Extractor:从Vdex文件编译和提取Android Dex字节码

/make.sh cross-android - 使用NDK交叉编译(armeabi-v7a,arm64-v8a,x86和x86_64)可执行文件复制bin目录下,对于调试版本使用$ DEBUG=true...集成反汇编程序 为了调试反编译器并协助Dex字节码调查任务,实现了一个轻型反汇编程序。反汇编输出非常类似于platform/art项目的AOSP dexdump2实用程序提供输出。...为方便起见,vdexExtractor正在实现一个帮助工具(请参阅下一节“tools / deodex”),该工具下载一组预编译二进制文件并包装所需自动化。...ArDC4mvMyPrRhFG5WH_zNz0jNarZ 静态编译:不支持 二进制名称's'后缀代表“静态编译”,而“d”代表“debug”构建。...由于转换器是作为AOSP源代码一部分进行编译,为了方便起见,开发人员维护了一组用于Linux和maacOS二进制文件。 ? *参考来源:github,由周大涛编译

5K72

Android 项目构建编译概述

Android操作系统堆栈概述 1.1. Android AOSP代码管理 1.2. 代号、标记和Build号 1.2.1. build ID定义 2....参考 主要内容是Android AOSP源码管理方式,项目源码构建和编译,用到比如git、repo、gerrit一些命令工具,以及使用Soong编译系统,编写Android.bp文件格式样式。...Repo不会取代Git,只是为了在Android环境更轻松地使用Git。Repo使用清单文件(XML)将Git项目汇总Android超级项目中。...模块 Android.bp文件模块以模块类型开头,后跟一组name: "value", 格式属性: cc_binary { /* 每个模块必须具有name属性,并且值唯一 (仅有两个例外情况是命名空间和构建模块...预编译模块 某些构建模块类型允许模块与其基于源代码对应模块具有相同名称。

3.1K20

Android ROM(AOSP集成 SuperSU 方法

官方下载链接:https://download.chainfire.eu/1220/SuperSU/ 处理 SELinux 我们给 Android 编译 ROM 时候,可以编译出带有 root 权限版本...集成 SuperSU 上面这篇文章Compile Android 5.1.1 ROM with ROOT by SuperSU 也提到了集成 SuperSU 步骤。...时候会产生,当系统启动时候就会执行它,刷完就会删掉这个文件。...) LOCAL_CERTIFICATE := PRESIGNED include $(BUILD_PREBUILT) 把第 2 步添加 packages 添加到编译路径。...存在问题 由于对 AOSP 不熟悉,文件放置不太讲究,不能迎合多设备编译需求。 还有一个小问题,就是点击 SuperSU 进入主界面时会提示有新 SU 可用,可是我已经下载最新版本了。

5K20

如何方便快速整编Android 9.0系统源码?

前言 有时候我们顺利AOSP下载了下来,很多时候我们不仅仅需要去查看源码,还有以下几个需求: 动态调试Android系统源码 定制Android系统 将最新版本Android系统刷入自己Android...kati kati是谷歌专门为了Android而开发一个小项目,基于Golang和C++。 目的是把AndroidMakefile,转换成Ninja文件。...1.初始化环境 在AOSP根目录,输入如下命令: source build/envsetup.sh // 编译前删除build文件夹A make clobber 使用 build目录envsetup.sh...[aosp_arm-eng] 意思就是要你选择编译目标的格式,编译目标的格式组成为BUILD-BUILDTYPE,比如aosp_arm-engBUILDaosp_arm,BUILDTYPE为eng。...其中BUILD表示编译镜像可以运行在什么环境,aosp代表Android开源项目,arm表示系统是运行在arm架构处理器上。 更多参考官方文档。

2.7K20

Android Studio 导入 AOSP 源码

有了 AOSP 源码,接下来就是如何看了,可以直接文本看,可以用 Source Insight,我当然选择 Android Studio,Android Studio 是我熟悉且十分强大工具。...问题来了,如何将 AOSP 源码导入 Android Studio?...:2 拓展 JDK 也有门派之分,那就是 Open JDK 和 Oacle JDK,其实我刚开编译时,用是 Oracle JDK,整编报错: You asked for an OpenJDK based...android.ipr 这两个文件,这两个文件Android Studio 工程配置文件,这时候其实已经可以直接导入 Android Studio,但会导入所有的源码模块,会很慢,可以进行过滤,除了...frameworks 模块和 packages 模块,其他都给过滤掉,不导入 Android Studio,打开 android.iml 文件,搜下excludeFolder,在后面加入如下代码:

3.1K30

macOS 下载编译 aosp 源码

最近在读《Android 进阶指北》,开篇就是介绍如何在安装到 VirtualBox Ubuntu 上进行下载和编译 aospAndroid Open Source Project)。...如下图所示: 另外,在 macOS 默认同时打开文件数量上限较低,当我们并行编译 aosp 时,可能会超出此上限。...ninjia 是一种追求编译速度小型构建系统,其设计目标是嵌入一个高级构建系统,追求尽可能快编译速度。...比如说我电脑 mac sdk 版本 10.15,相关配置文件 build/soong/cc/config/x86_darwin_host.go 配置如下: darwinSupportedSdkVersions...删除 system/sepolicy/tests/Android.pb 文件 libc++_static 那一行即可。后来有提交修复了该问题,点击查看该提交 diff。

3.1K20

Android 高性能音频】Oboe 开发流程 ( 导入 Oboe 库 | 使用构建二进制库和头文件 | 编译 Oboe 源码 )

文章目录 一、导入 Oboe 库 二、使用构建二进制库和头文件 三、编译 Oboe 源代码 Oboe GitHub 主页 : GitHub/Oboe ① 简单使用 : Getting Started...history 一、导入 Oboe 库 ---- Google 官方提供了两种导入 Oboe 库方式 : ① 构建二进制库 : 使用 构建二进制库和头文件 ; ② 编译源码 : 直接 添加...Oboe 源码工程 , 在 Android Studio 编译 Oboe 源码 ; Oboe 导入库方案适用场景 : 使用稳定功能 : 如果只想要 使用稳定版本 Oboe 函数库 , 使用方案..., 生成构建系统集成工具 ; Prefab 包中含有 少量元数据 , 以及描述构建函数库 ; 参考 : GitHub/Prefab 在 Module 下 build.gradle 中进行如下配置.../oboe 指定编译二进制文件存放位置 ; add_subdirectory (${OBOE_DIR} .

1K00

如何在Ubuntu上构建Android ROM

在Androidmodding社区,此类固件通常称为ROM,即只读内存缩写。 在本教程,您将构建一个基于Android开源项目的Android Oreo ROM(简称:AOSP)。...创建一个新目录来存储您要下载Android源: mkdir -p ~/aosp/oreo 在本教程其余部分,您将在此目录工作,因此切换到它: cd ~/aosp/oreo 必须使用AOSP清单存储库初始化该目录...,AOSP清单存储库是一个包含名为default.xmlXML文件特殊Git存储库,它指定了共同构成AOSP代码库所有其他Git存储库路径。...最后,通过运行repo sync命令从各种存储库下载实际AOSP文件: repo sync 上面的命令将会下载超过30GB数据,因此在完成时要耐心等待。一旦完成,我们将设置一个缓存来加速编译。...例如,以下是如何将并行编译数减少2: make -j2 如果由于磁盘空间不足而导致构建失败,那么您可能尝试多次构建而不清除以前构建结果。

2.5K00

在macOS 10.12 上编译 Android 5.1

本文介绍下如何在在macOS 10.12 上编译 Android 5.1源码,导入源码Android Studio,把系统烧录到Nexus6手机。...---- 搭建编译环境 创建分区 AOSP源码需要一个支持大小写敏感文件系统,100G是至少要。官网有详细介绍,这里简单列一下。...- 去AppStore下载最新Xcode - 这里下载5.1.1Xcode 2、创建一个/Developer/SDK文件夹,从Xcode5.1.1把MacOSX10.8.sdk从Contents...---- 编译 设置文件描述符限制 在macOS,默认限制同时打开文件数量很少,不能满足编译过程高并发需要,因此需要在shell运行命令: $ ulimit -S -n 1024 环境设置...如果lunchaosp_arm-eng类型,就可以用$ emulator命令刷模拟器了。 ---- 源码导入Android Studio 为了方便查看源码,可以把代码导入AS

1.9K40

将自己编译AOSP刷入nexus5

ubuntu14.04编译Android4.4源码讲述了用于模拟器AOSP编译过程,在完整编译了源码以后,会自动将编译结果目录加入path,此时运行 emulator 即可在模拟器运行自己编译结果...真机运行需要厂商驱动,厂商驱动是不包含在AOSP,你需要根据你选择Branch: https://source.android.com/source/build-numbers.html...比如,我编译是Branch是android-5.1.0_r1,对应Build是LMY47D,在驱动页面找到对应驱动是: Nexus 5 (GSM/LTE) binaries for Android...//下面有几个驱动链接 将驱动文件下载后,解压到AOSP根目录,得到几个.sh文件,执行后,会在AOSP下创建vendor目录,里面包含了驱动。...没有设置,找不到编译.img文件,执行: export ANDROID_PRODUCT_OUT=/your/path/to/img 再次执行.

1.8K30

android源码编译(ubuntu16.04 64位)

创建编译文件夹 $ mkdir source $ cd source 注意,这个文件夹所在磁盘空余要大于100G,编译后需要很大空间。...安装JDK 在AOSP开源,主分支使用Ubuntu长期版本开发和测试,因此也建议你使用Ubuntu进行编译,下面我们列出不同版本Ubuntu能够编译那些android版本: Android版本...至Android 2.2.x Ubuntu 10.04 对应sdk版本: Android版本 编译要求JDK版本 AOSPAndroid主线 OpenJDK 8 Android 5.x至android...编译目标格式说明 编译目标的格式:BUILD-BUILDTYPE,比如上面的aosp_arm-engBUILDaosp_arm,BUILDTYPE是eng....BUILD指的是特定功能组合特定名称,即表示编译镜像可以运行在什么环境.其中,aosp(Android Open Source Project)代表Android开源项目;arm表示系统是运行在

1.4K30

AOSP 源码整编单编

整编 整编,顾名思义就是编译整个 Android 源码,最终 out 目录会生成几个重要镜像文件,其中有 system.img、userdata.img、ramdisk.img 等,这些是可以刷机。...[aosp_arm-eng] 26 编译目标格式说明 编译目标的格式:BUILD-BUILDTYPE,比如上面的 poplar-eng BUILD 是 poplar,BUILDTYPE 是 eng....什么是 BUILD BUILD 指的是特定功能组合特定名称,即表示编译镜像可以运行在什么环境。...3 可看到创建虚拟机 CPU 核心共有 4 个,那么要实现最快编译速度,可以使用介于 make -j4 make -j8 之间命令。...,会搜索整个源代码来定位 MediaProvider 模块所使用 Android.mk 文件,还要判断该模块依赖其他模块是否有修改。

2.3K20

aosp编译

为什么要编译aosp源码: 首先android现在过反调试、root检测、xopsed检测、frida检测都非常难,一个一个过很费时费力,那编译源码就可以使用源码函数,天然可以过检测。...然后现在编译使用脱壳机也需要先编译aosp源码 在然后编译使用aosp源码可以帮助更清楚理解aosp源码执行过程 对于开发来讲可以通过aosp源码获取隐藏api 对于发烧友来说可以修改源码加一些定制化东西.../setup/build/building https://source.android.com/setup/build/building-kernels aosp编译参考文章: https://www.anquanke.com....7z文件拖拽COMPLIE目录下 md5sum aosp810r1.7z 算下md5跟aosp810r1.txt是否一致 解压 7z x aosp810r1.7z 安装依赖 apt update...、mke2fs文件、lib64文件夹(文件夹下含libc++.so文件) 4.不存在从platform-tools拷贝过去 , platform-tools下载网址: https://developer.android.google.cn

2.4K20

Android源码环境搭建(aosp Ubuntu 16.0420.04)

(注意一定要拷贝换行问题,最好先拷贝txt上,再拷贝命令行) sudo apt-get install git-core gnupg flex bison gperf build-essential...:这里最后会出现一个Sub Item error大家可以忽略) 7、编译 aosp 代码 1、 . build/envsetup.sh 2、lunch 这里我们选择:6 –-- > aosp_x86.../core/java/android/app/Activity.java 在添加 onCreate添加一句 android.util.Log.i(“test1”, “Activity is onCreate...”); 回到根目录: make 或者单独编译单模块make framework,然后push framwork.jar(但是不适合模拟器,只适用于实体debug手机) 11、加载源代码 AndroidStudio...build/envsetup.sh") "lunch",并选择要编译项目 "make idegen -j4" (这里 -j4表示用 4线程来编译,可以不加) "development/tools/idegen

64120
领券