2 votes

Nécessité d'ajouter un script personnalisé en tant que service dans init.rc pour Android 10

J'essaie d'exécuter un script shell au moment du démarrage de l'appareil.

Les étapes :

  1. Création d'un script shell et placement dans /system/bin/usbmountd.sh

  2. Ajout de test.sh dans inir.rc.

    service usbmountd /system/bin/usbmountd.sh
    user system
    disabled
    oneshot
  3. Ajouter un nouveau Domaine "usbmountd.te" dans l'emplacement de device/broadcom/XXX/sepolicy/treble/ usbmountd.te

     type usbmountd, domain;
     type usbmountd_exec, exec_type, file_type;
     init_daemon_domain(usbmountd)
  4. Ajoutez l'étiquette "/system/bin/usbmountd.sh" à la section device/broadcom/XXX/sepolicy/treble/file_contexts

     /system/bin/usbmountd     u:object_r: _exec:s0
  5. Ajouté en device/broadcom/xxx/sepolicy/xxx/file.te

     type usbmountd_exec, system_file_type, file_type;

Erreur :

[ 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 Points 1239

L'erreur est la suivante 'Duplicate declaration of type'

Le problème se situe à l'étape 5, dans laquelle vous déclarez
type usbmountd_exec, system_file_type, file_type;

Vous avez déjà déclaré ce même type usbmountd_exec à l'étape 3. Supprimez donc la déclaration en double.

De même, à l'étape 4, il devrait ressembler à ceci :
/system/bin/usbmountd.sh u:object_r:usbmountd_exec:s0

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X