安卓10 如何把so库编到 vendor/lib64下
时间: 2024-02-21 08:59:02 浏览: 429
将so库编译到vendor/lib64下需要进行以下步骤:
1. 修改Android源码
需要修改Android源码中的两个文件:
- build/make/core/base_rules.mk
- build/make/core/config.mk
在base_rules.mk文件中,找到以下代码:
```
$(LOCAL_INSTALLED_MODULE): PRIVATE_MODULE_TAGS := user
```
将其修改为:
```
$(LOCAL_INSTALLED_MODULE): PRIVATE_MODULE_TAGS := vendor
```
在config.mk文件中,找到以下代码:
```
PRODUCT_PACKAGES += \
libfoo \
libbar
```
将其修改为:
```
PRODUCT_PACKAGES += \
vendor/lib64/libfoo \
vendor/lib64/libbar
```
2. 编译so库
在编译so库时,需要将LOCAL_MODULE_TAGS设置为vendor,示例如下:
```
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := vendor
LOCAL_MODULE := libfoo
LOCAL_SRC_FILES := foo.c
include $(BUILD_SHARED_LIBRARY)
```
然后执行编译命令,如:
```
mm -j8 libfoo
```
3. 安装so库
将编译好的so库复制到vendor/lib64目录下,并修改权限:
```
adb remount
adb push out/target/product/xxx/vendor/lib64/libfoo.so /vendor/lib64/
adb shell chmod 644 /vendor/lib64/libfoo.so
```
注意,如果设备是Android 10以上的版本,需要在设备上执行以下命令使so库生效:
```
adb shell setprop vendor.debug.egl.force_opengl_es3 true
```
以上就是将so库编译到vendor/lib64下的步骤。
阅读全文