sur Android 6.0.1 Je reçois cette erreur lorsque j'essaie d'utiliser run-as.
⋊> ~ adb Shell 14:29:01
Shell@trlte:/ $ run-as org.ligi.passandroid
run-as: Could not set capabilities: Operation not permitted
J'aime beaucoup la commande run-as - y a-t-il un moyen de la faire fonctionner sur 6.0.1?
Si vous avez un périphérique SAMSUNG, ne vous embêtez pas - SAMSUNG brokerun-as
en supprimant l'indicateur setuid (de sorte que run-as
n'a aucune chance de passer à une identité différente).
Ne cherchez pas non plus la solution de contournement "Réinitialisation du périphérique" de Smart Switch, elle ne fonctionnera pas tant que SAMSUNG n'aura pas corrigé le problème dans le micrologiciel (il est donc intéressant de mettre à jour la dernière version).
Utilisez une autre méthode pour accéder aux données de votre application, telle que adb backup
:
adb backup -f data.ab <my.package>
dd if=data.ab bs=24 skip=1 | openssl zlib -d > data.tar
Au lieu de dd
, vous pouvez utiliser l’outil abe , qui permet également d’écrire des fichiers .ab.
La solution pour moi était le paramètre -autolaunch dans la configuration du débogueur du projet dans le champ Paramètres.
J'utilise Delphi 10.2 avec S7 Edge Android 7
Contrairement à une autre réponse, j’ai également essayé d’utiliser le commutateur intelligent et la réinitialisation matérielle, mais malheureusement, cette approche n’a pas fonctionné pour moi (perte supplémentaire d’une heure pour l’essayer). En plus de ne pas fonctionner, cela pourrait créer un problème supplémentaire "Compte samsung: session expirée" - un problème qui ne peut être résolu que si vous avez un accès root à votre appareil.
J'ai moi-même utilisé les instructions ici: https://www.youtube.com/watch?v=Sy4FWLHxGYs
et ensuite à partir d'ici: https://www.tomsguide.com/us/samsung-galaxy-s6-guide,review-2856-3.html
pour obtenir un accès root sur votre appareil, et ensuite exécuter-as peut être exécuté avec la commande supplémentaire "su -c" comme pour obtenir l'utilisateur root. Donc, toute la commande ressemblera à ceci:
su -c run-as org.ligi.passandroid
WARNING: L'accès root à votre appareil annulera probablement la garantie de votre appareil s'il vous en reste.
En plus de cela, je voulais pouvoir déboguer mon application à l'intérieur du Samsung Galaxy S6. J'ai donc modifié les composants de Visual studio. Vous pouvez trouver plus d'instructions ici:
https://issuetracker.google.com/issues/37093233#comment53
Si vous possédez un appareil Android basé sur Samsung - j'ai déjà signalé ce bogue à Samsung, mais je ne pouvais obtenir aucun calendrier si, quand et si, ils allaient résoudre ce problème. Si vous possédez un autre appareil Android - il est logique de signaler ce problème au fabricant.
@RustyX réponse m'a aidé partiellement. zlib
ne fonctionnait pas sur mon Mac. J'ai donc dû utiliser Android Backup Extractor pour convertir le fichier .ab en fichier .tar. Vous pouvez le télécharger ici .
Pour l'instruction complète étape par étape, reportez-vous ici .
Dans Visual Studio, Propriétés de l'application, Options Android, le changement du débogueur de C++ en .Net (Xamarin) semble avoir résolu le problème pour une application mixte C++/C #.