Comment accorder l'accès à la racine d'une application spécifique, le code source au lieu de l'enracinement de la ROM?
Je suis à la compilation d'une ROM Android à partir de la source, et j'ai une application que je veux qu'il soit pré-installé et qu'il fonctionne avec de la racine de l'autorisation.
Comment puis-je accorder l'accès à la racine de cette application spécifique, sans enracinement de l'ensemble de la ROM?
L'installer dans system/app au lieu de data/app
L'installation de ce système/application ne prend pas en accorder l'accès root automatiquement.
L'installation de ce système/application ne prend pas en accorder l'accès root automatiquement.
OriginalL'auteur Charles Liu | 2013-04-25
Vous devez vous connecter pour publier un commentaire.
J'espère que vous n'avez pas besoin de racine...
Typique stock Android Rom offrent des privilèges root pour très peu de choses, en ligne avec la principe du moindre privilège. Au lieu de cela, les applications sont accordées précis des autorisations dont ils ont besoin.
Exactement pourquoi avez-vous besoin de cette application pour avoir les permissions root? Vous devez d'abord regarder à travers la liste de tous les internes non publiés autorisations Android pour voir si l'un d'entre eux fait ce que vous voulez. Puisque vous êtes en train de construire une application système, vous pouvez même utiliser
signature
autorisations qui ne sont normalement pas disponibles pour d'autres applications. Vous avez juste besoin de s'assurer que votre application est signé par la clé avec laquelle vous construire la ROM Android - vous pouvez ensuite distribuer avec le ROM ou séparément, et il y aura toujours de l'accès aux autorisations dont vous avez besoin.Les avantages de cette façon de faire sont:
Donc, si vous pouvez éventuellement faire votre tâche de cette façon, n'.
Mais si vous avez vraiment le faire...
Si vous avez vraiment besoin de la racine, puis les choses se complique.
Vous avez trois options. Dans l'ordre de préférence:
su
binaire pour vérifier exactement qui est de l'appeler.Si vous avez vraiment besoin de root, puis je ajouter un nouveau système de service. Cela peut exécuter en tant que root. Vous pouvez alors ajouter adapté extra Api de sorte que votre application peut appeler cela - et les autorisations peuvent être
signature
niveau, de sorte que seulement votre système d'application puisse l'appeler. C'est le point de vue architectural "bonne" façon de le faire dans Android land.La deuxième ou la troisième des options impliquent la création de certains outil en ligne de commande qui fait ce que vous voulez, mais je ne sais pas un moyen sécurisé pour un tel outil pour vérifier qui est de l'appeler. Il peut être acceptable de permettre à n'importe quelle application à l'appel de cette fonctionnalité. Si oui, une nouvelle setuid-root exécutable peut être le chemin à parcourir. Cependant, comme je l'ai dit, je ne sais pas un moyen d'arrêter les autres applications en cours d'exécution.
Malheureusement pas! Cela signifie qu'il serait accordé
signatureOrSystem
autorisations si elle a demandé pour eux. Mais il est tout aussi facile de signer l'application avec le système de clé, qui va également donner lieu à la délivrance de ces autorisations - plussignature
autorisations.ainsi, un système d'application ne peut pas accéder à d'autres applications de données ? je suppose que cela signifie que le système d'applications qui ont également la racine de l'autorisation sont vraiment capables de tout faire.
C'est le droit. Système d'apps ne sont pas différents des applications régulières, sauf qu'ils sont en mesure d'accéder à des Api disponibles uniquement via
signatureOrSystem
autorisations, en plus du fait qu'ils sont signés par le ROM certificat de sorte qu'ils peuvent aussi accéder à des Api mises à disposition par le système à l'aidesignature
capabilties. Système de services sur l'autre main peut bien exécuter en tant que root - mais en ce sens, un service est un peu différent de la sorte deService
vous pouvez exécuter à l'intérieur d'un .apk.comment voulez-vous signer avec un certificat spécial?
OriginalL'auteur Adrian Taylor