2016-03-29 14 views
0

デーモンを作成しましたが、マシュマロで動作しているNexus 5でデーモンを実行できません。続いinit.rc内で起動時にデーモンを実行できません

は私のエントリがADB接続が検出された場合、私のデーモンは

on property:sys.usb.config=accessory,adb && property:sys.usb.configfs=0 
start disableadb 
を実行することinit.usb.rcよう内で編集された後init.rc

on init 
    chmod 777 /sbin/check_usb 
    chown root root /sbin/check_usb 

service disableadb /sbin/check_usb 
    class main 
    seclabel u:r:disableadb:s0 

で編集コードであります

私はcheck_usbプログラムを/ sbin/systemの下に挿入し、chmod 777へのアクセスを許可しました。

しかし、私はdmesg |グレップのdisableadb出力は、私のデーモンは、以下のようにエラーで実行することができませんでした:

init : cannot setexeccon ('u:r:disableadb:s0') Invalid argument 

答えて

0

このエラーはsepolicyの問題が原因である可能性があります。 新たに追加されたサービスに、正しいsepolicy設定がない可能性があります。

このためのルールを追加してください。 以下のファイルを作成してください。

ファイルを作成し、ファイルを作成file_contexts

/sbin/check_usb    u:object_r:disableadb:s0 

、ディレクトリ内device/xxx/.../sepolicy/check_usb

を作成します。check_usb.te

# check_usb service 
type check_usb, domain; 
type check_usb_exec, exec_type, file_type; 

init_daemon_domain(check_usb) 

allow init check_usb:process transition; 

はあなたのBoardConfig.mkに

BOARD_SEPOLICY_DIRS += device/xxx/.../sepolicy/check_usb 
をこのディレクトリを追加します。
関連する問題