push到设备中的路径一般和生成物的路径是一致的,例如vold的push路径就是/system/bin/,具体的生成物需要看对应代码模块下的.mk或者.bp文件,这两个编译文件中会写明编译的代码块以及生成物的名称
linux搜索文件命令
$ find -name xxx
单模块编译命令
cd /AOSP/
source build/envsetup.h
lunch
--选择你需要编译的模块类型,可以是序号也可以是名称--
cd /xxxx/xxx/xx/path_contains_mk/
mm
或者mma,mma是依赖外部库的编译命令
注意,push完成之后,需要adb shell sync同步,最好再重新上下电启动,来确认是否修改完成
----------------如下是安卓9----------------------
Vold
路径:/AOSP/system/vold
生成物路径:/AOSP/out/target/product/xxxProject/system/bin/
生成物:vold,这个就相当于一个bin文件
vendor路径下开发商自己开发的service或者app
路径:/AOSP/vendor/xx
生成物路径:/AOSP/out/target/product/xxxProject/system/priv-app/my_stuff/
生成物: Service or apk,以及odex和vdex文件
注意需要把生成的my_stuff整个文件夹push进设备系统目录下
MediaScanner
路径:/AOSP/packages/providers/MediaProvider
生成物路径:/AOSP/out/target/product/xxxProject/system/priv-app/MediaProvider/
生成物:整个MediaProvider/文件夹,包括apk,以及odex和vdex文件
FFmpeg Extractor
这个是第三方的一个针对媒体格式的编解码库
生成物:/system/lib64/目录底下的libffmpegextractor文件
----------------上述为安卓9----------------------
----------------------------------此处开始为安卓12-----------------------------------
编译命令:
cd /xxxlagvm/LINUX/android/
source build/envsetup.sh
lunch xxx
cd /xxx
Selinux权限
两个路径的te文件,修改需要完全一致,否则无法编译通过
文件路径:
lagvm/LINUX/android/system/sepolicy/prebuilts/api/32.0/public/
lagvm/LINUX/android/system/sepolicy/public/
编译路径:/lagvm/LINUX/android/system/sepolicy
无生成物,编译到版本里即可生效
Codec
文件路径:/lagvm/LINUX/android/frameworks/av/media
生成物路径:/lagvm/LINUX/android/out/target/product/xxxProject/system/lib64
生成物:libsfplugin_ccodec.so,libcodec2_vndk.so
ModernMediaScanner
代码路径:
/lagvm/LINUX/android/packages/providers/MediaProvider/src/com/android/providers/media/scan/
编译路径:/lagvm/LINUX/android/packages/providers/MediaProvider/
生成物push路径:
/system/apex/com.android.mediaprovider/priv-app/
/system/priv-app/
MediaExtractor解析器
代码路径:/lagvm/LINUX/android/frameworks/av/media/extractors/
生成物路径:/system/apex/com.android.media/lib64/extractors/
生成物:对应媒体格式extractor的so库
MediaProvider
编译路径:/lagvm/LINUX/android/packages/providers/MediaProvider
代码路径:
/lagvm/LINUX/android/packages/providers/MediaProvider/src/com/android/providers/media/scan/
push路径:/system/apex/com.android.mediaprovider/priv-app/
mediaprovider扫描出来的数据库在设备系统中的路径为:
/com.android.providers.media.module/databases