我现在需要把Generic.kl从vendor/sdmc/himalaya/us/kb_keylayout/Generic.kl 拷贝到系统的/system/usr/keylayout/Generic.kl。代码上在mk文件添加了PRODUCT_COPY_FILES += \ $(VENDOR_CUS_FOLDER)/$(MODEL_REGION)/kb_keylayout/Generic.kl:/system/usr/keylayout/Generic.kl,开机后查看这个文件的内容没有被覆盖
时间: 2023-07-05 22:30:53 浏览: 110
如果您在.mk文件中添加了 `PRODUCT_COPY_FILES` 来复制文件,但是开机后文件的内容没有被覆盖,可能是以下几个原因导致的:
1. 代码没有编译进入系统:请确保您修改的.mk文件已经被编译进入了系统中。您可以通过查看编译日志文件来确认是否成功编译。
2. 文件路径设置错误:请检查路径中是否包含正确的文件名和目录名。如果文件路径设置错误,文件将无法被正确地复制到目标文件夹中。
3. 目标文件夹不存在:请确保目标文件夹存在。如果目标文件夹不存在,则无法将文件复制到该文件夹中。
如果您已经确认了以上问题,并且仍无法成功覆盖文件,可能需要您手动覆盖文件。您可以使用以下命令将文件从vendor目录复制到系统目录中:
```
adb root
adb remount
adb push vendor/sdmc/himalaya/us/kb_keylayout/Generic.kl /system/usr/keylayout/Generic.kl
```
其中,adb root 和 adb remount 命令将设备切换为 root 用户,并重新挂载文件系统为可读写模式,这样才能复制文件到 /system 目录下。接着,adb push 命令将文件从 vendor 目录复制到系统目录中。
复制完成后,您可以使用以下命令重新启动设备,以确保配置文件生效:
```
adb reboot
```
重新启动后,您可以再次查看文件的内容,确认是否被覆盖。
相关问题
我现在需要把Generic.kl从vendor/sdmc/himalaya/us/kb_keylayout/Generic.kl 拷贝到系统的/system/usr/keylayout/Generic.kl。开机后查看这个文件的内容没有被覆盖
您可以使用以下命令将文件从vendor目录复制到系统目录中:
```
adb root
adb remount
adb push vendor/sdmc/himalaya/us/kb_keylayout/Generic.kl /system/usr/keylayout/Generic.kl
```
其中,adb root 和 adb remount 命令将设备切换为 root 用户,并重新挂载文件系统为可读写模式,这样才能复制文件到 /system 目录下。接着,adb push 命令将文件从 vendor 目录复制到系统目录中。
复制完成后,您可以使用以下命令重新启动设备,以确保配置文件生效:
```
adb reboot
```
如果您依然无法看到文件的内容被覆盖,您可以尝试清除系统缓存,方法如下:
1. 进入设备的 recovery 模式,方法因设备而异,一般是按住音量减和电源键。
2. 进入 recovery 后,选择 "Wipe cache partition" 或 "清除缓存分区",等待清除完成。
3. 选择 "Reboot system now" 或 "重新启动系统",等待设备重启。
重启完成后,您可以再次查看文件的内容,确认是否被覆盖。
warning: writing to readonly directory: "vendor/sdmc/himalaya/us/kb_keylayout/Generic.kl"
这个警告通常是由于你尝试在一个只读的目录中写入文件而引起的。在这种情况下,你需要检查目录的权限设置,或者尝试将文件写入到另一个可写的目录中。如果你无法更改目录的权限,你可以考虑使用sudo命令以管理员身份运行你的程序,这可能会解决问题。另外,你也可以尝试使用其他文件路径来存储你的文件,而不是当前目录。
阅读全文