我的linux下/sys/block/[device]/文件夹下没有device目录和vendor
时间: 2023-10-09 09:05:01 浏览: 54
/sys/block/[device]/目录下的device和vendor文件夹是针对SCSI设备的,在SCSI设备中,可以通过查询/sys/block/[device]/device和/sys/block/[device]/vendor文件夹获取设备的厂商和设备ID等信息。而对于其他类型的块设备,如SATA硬盘,这些文件夹可能不存在或者不包含有用的信息。
如果你想查看SATA硬盘的厂商和设备ID等信息,可以使用命令`hdparm -i /dev/sda`,其中`sda`为你的硬盘设备名。
相关问题
OTA会删除/data/vendor/auth下的东西吗
通常情况下,OTA 不会删除 `/data/vendor/auth` 目录下的东西,因为这个目录通常存储着供应商授权文件和证书等敏感信息。如果 OTA 删除了这些文件,可能会导致系统无法正常运行某些供应商特定的功能,或者导致应用程序无法访问某些受保护的资源。
为了保护 `/data/vendor/auth` 目录下的敏感信息,通常会在 Android 系统中采用 SELinux 等安全机制来限制对这个目录的访问权限。只有具有足够权限的用户才能够访问和修改这个目录下的文件。
如果您需要在 OTA 过程中修改 `/data/vendor/auth` 目录下的文件,建议您先备份这些文件,然后在 OTA 完成后再将备份文件恢复回去。这样可以确保系统的稳定性和安全性。
安卓10 如何把so库编到 vendor/lib64下
将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下的步骤。