2 votos

Necesidad de añadir script personalizado como servicio en init.rc para Android 10

Estoy tratando de ejecutar el shell script en el tiempo de arranque del dispositivo.

Pasos:

  1. Creado el shell script y colocado en /system/bin/usbmountd.sh

  2. Añadido test.sh en inir.rc.

    service usbmountd /system/bin/usbmountd.sh
    user system
    disabled
    oneshot
  3. Añade un nuevo dominio "usbmountd.te" en la ubicación de device/broadcom/XXX/sepolicy/treble/ usbmountd.te

     type usbmountd, domain;
     type usbmountd_exec, exec_type, file_type;
     init_daemon_domain(usbmountd)
  4. Añade la etiqueta "/system/bin/usbmountd.sh" a device/broadcom/XXX/sepolicy/treble/file_contexts

     /system/bin/usbmountd     u:object_r: _exec:s0
  5. Añadido en device/broadcom/xxx/sepolicy/xxx/file.te

     type usbmountd_exec, system_file_type, file_type;

Error:

[ 81% 747/921] build out/target/product/xxx/obj/ETC/sepolicy_neverallows_intermediates/sepolicy_neverallows
FAILED: out/target/product/xxx/obj/ETC/sepolicy_neverallows_intermediates/sepolicy_neverallows
/bin/bash -c "(ASAN_OPTIONS=detect_leaks=0 out/host/linux-x86/bin/checkpolicy -M -c             30 -o out/target/product/xxx/obj/ETC/sepolicy_neverallows_intermediates/sepolicy_neverallows.tmp out/target/product/xxx/obj/ETC/sepolicy_neverallows_intermediates/policy.conf ) && (out/host/linux-x86/bin/sepolicy-analyze out/target/product/xxx/obj/ETC/sepolicy_neverallows_intermediates/sepolicy_neverallows.tmp neverallow -w -f out/target/product/xxx/obj/ETC/sepolicy_neverallows_intermediates/policy_2.conf ||           ( echo \"\" 1>&2;         echo \"sepolicy-analyze failed. This is most likely due to the use\" 1>&2;            echo \"of an expanded attribute in a neverallow assertion. Please fix\" 1>&2;           echo \"the policy.\" 1>&2;            exit 1 ) ) && (touch out/target/product/xxx/obj/ETC/sepolicy_neverallows_intermediates/sepolicy_neverallows.tmp ) && (mv out/target/product/xxx/obj/ETC/sepolicy_neverallows_intermediates/sepolicy_neverallows.tmp out/target/product/xxx/obj/ETC/sepolicy_neverallows_intermediates/sepolicy_neverallows )"
device/xxx/xxx/sepolicy/treble/usbmountd.te:3:ERROR 'Duplicate declaration of type' at token ';' on line 60116:
type usbmountd_exec, exec_type, file_type;
type usbmountd, domain;
checkpolicy:  error(s) encountered while parsing configuration

1voto

Hugh Puntos 309

El error es 'Duplicate declaration of type'

El problema es el paso 5 en el que se declara
type usbmountd_exec, system_file_type, file_type;

Ya has declarado ese mismo tipo usbmountd_exec en el paso 3. Por lo tanto, elimine la declaración duplicada.

También en el paso 4 debería verse así:
/system/bin/usbmountd.sh u:object_r:usbmountd_exec:s0

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X