程式檔案拷貝和自啟動服務新增

2021-09-22 16:40:13 字數 1091 閱讀 3058

一般是在device.mk檔案中執行如下的拷貝工作

product_copy_files += \

device/hisilicon/bigfish/etc/usbfs.sh:system/etc/usbfs.sh

二:新增啟動動作,使android在啟動時候執行

init.rc檔案末尾處加入以下內容(不再詳述,不懂的自己翻書或者爬網查)

service mount-usbfs /system/etc/usbfs.sh

class main

user root

group root

oneshot

之後編譯系統,燒寫,啟動,觀察啟動log,發現確實執行了該s**件,但是卻報了乙個「許可權不足」的提示,ll了一下usbfs.s**件,發現許可權是644,沒有執行許可權。

ok,沒有執行許可權,給他新增上執行許可權就是了,同樣是在init.rc檔案中,新增以下內容:

chown root shell /system/etc/usbfs.sh

chmod 0550 /system/etc/usbfs.sh

新增了執行的許可權,這次應該沒有問題了吧,網上很多介紹也是這麼幹的。

觀察啟動的log,居然還是「許可權不足」!!!怎麼回事,難道沒有生效?ll了一下usbfs.s**件,發現許可權居然還是644,說明剛才的賦許可權是沒有效果的。

為什麼?接著查,在檢視init.rc的過程中,發現了以下內容:

mount ext4 ext4@system /system ro

原來system分割槽是以唯讀的形式進行掛載的,忽略這點了。以唯讀形式掛載,再怎麼賦許可權,也是徒勞啊。

突然又發現,與usbfs.sh在同乙個目錄的init.bigfish.sh,許可權是正常的,並且該檔案的原始檔與s**件同樣都在乙個目錄裡。那麼,這說明android在編譯過程中,除了拷貝以外,應該還有乙個賦許可權的動作。

基於以上思路,繼續進行查詢。功夫不負有心人,還真被我找到了,確實存在這麼乙個動作,它在**呢?

在這裡:system/core/include/private/android_filesystem_config.h,其中有個結構體做如下定義:

,

linux如何給程式新增自啟動

我要使我的服務程式在重啟系統後也隨之自動啟動。啟動我的服務用到了乙個指令碼。現在有兩個方法 法1 sudo vi etc init.d rc.local 在這裡新增啟動服務的指令碼命令.這個方法的優點是 此時尚未登入使用者,啟動服務用的是su。相當於sudo。許可權無比大.這個方法的缺陷是 這個時候...

linux如何給程式新增自啟動

我要使我的服務程式在重啟系統後也隨之自動啟動。啟動我的服務用到了乙個指令碼。現在有兩個方法 法1 sudo vi etc init.d rc.local 在這裡新增啟動服務的指令碼命令.這個方法的優點是 此時尚未登入使用者,啟動服務用的是su。相當於sudo。許可權無比大.這個方法的缺陷是 這個時候...

docker服務和容器自啟動

docker 伺服器開機自啟動 1.systemctl is enabled docker.service 檢查服務是否開機啟動 2.systemctl enable docker.service 將服務配置成開機啟動 3.systemctl start docker.service 啟動服務 sy...