2017-04-25 1 views
3

Je veux excute un fichier exécutable au démarrage Sur une carte cible avec Android 5.1 donc j'ajouter ceci init.rc:init warning: Service myservice nécessite un domaine SELinux défini. S'il vous plaît fixer

on boot 
    start myservice 

service myservice /system/bin/myservice 
    #class main 
    user root 
    group root 
    #oneshot 

J'ai fait le déballer et remballer travail.
Lorsque des modifications sont apportées, cependant, l'écran conserve l'impression:

init warning: Service myservice needs a SELinux domain defined. Please fix. 
type=1400 ... avc:denied ... scontext ... tcontext ... #some annoying warning messages like this 

SELinux semble un projet énorme pour moi. Je veux juste éviter ça. J'ai essayé deux approches:

1. setenv kernelargs 'console=ttyS0,115200n8 rootdelay=1 selinux=0' and saveenv 
2. set enforce 0 

Pour la méthode 1, printenv donne le résultat:

kernelargs=console=ttyS0,115200n8 rootdelay=1 selinux=0 

Vous voyez, des changements ont été apportés. Mais les messages d'avertissement continuent d'imprimer après le redémarrage.
Pour la méthode 2, il est dit:

Could not set enforce status. Permission denied. 

Alors maintenant, je suis coincé dans le Dilema ont aucune idée où aller. Mes questions:

    1. Tout le monde sait comment désactiver ou définir le mode permissif dans Android?
    1. Quels fichiers dois-je modifier si je veux définir domaine pour le nouveau service?

Par ailleurs, ls -Z /system/bin/myservice donne ceci:

u:object_r:system_file:s0 

Répondre

1
  1. vous devez su pour définir le mode permissif. Ou vous avez besoin du code source pour désactiver SELinux, comme désactiver SELinux dans la configuration du noyau, ou désactiver SELinux dans BOARD_KERNEL_CMDLINE dans device/vendor_name/product_name/BoardConfig.mk.

  2. Si vous avez le code source, vous pouvez définir le nouveau domaine comme vous le souhaitez.

S'il vous plaît se référer aux documents officiels Android: https://source.android.com/security/selinux/device-policy

section: Label de nouveaux services et refus d'adresse

+0

Depuis mon nom d'utilisateur est root, je pense que j'ai le privilège racine. Mon collègue m'a dit que j'avais encore besoin de su. Après su, j'ai réussi à définir le mode permissif. Alors que pour un autre problème, il me semble que définir un nouveau domaine est tellement un problème: le code source devrait être modifié et android devrait être recompilé. Et mon projet entier devrait être recompilé. – dudu