Autorisation d'écriture sur certains chemins, comme la carte SD (extSdCard)

10

Dans une tentative de transfert d'un fichier d'un serveur distant vers un appareil Android, j'ai rencontré des problèmes d'autorisation.

Il s'avère que je n'ai pas de permission d'écriture à l'emplacement de la carte SD (/ mnt / extSdCard).

J'utilise SSHDroid en tant que serveur ssh sur l'appareil Android et vSSH en tant que client ssh pour engager ssh sur l'appareil Android.

Étant donné que sudo et su semblent absents sur l'application serveur ssh (SSHDroid), je me demande comment je peux changer / obtenir la permission d'écrire sur l'emplacement de la carte SD. Ou le privilège root ne suffit-il pas pour modifier les autorisations d'écriture, et est-ce donc régi uniquement par le système d'exploitation Android, donc une limitation du système d'exploitation?

Ce que je peux faire, c'est écrire sur le chemin du serveur SSH (SSHDroid). Ce chemin, cependant, est très lourd et ne peut pas être atteint à partir de l'API de navigation de fichiers Android standard. C'est la raison pour laquelle j'ai voulu transférer le fichier vers un chemin accessible , comme la carte SD.

Supplément. La version Android est 4.4.2. La version du noyau est 3.4.0-1539356 # 1.

Mussé Redi
la source
3
C'est une restriction de Kitkat (ils l'appellent "sécurité", mais en réalité c'est plutôt un "force2cloud"). Vous ne pourrez pas contourner cela sans rooter votre appareil. Sauf pour choisir votre carte SD interne , car vous pouvez y écrire.
Izzy
@Izzy Si vous aviez mis cela dans une réponse, alors cette question serait une réponse .
Mussé Redi
Terminé, avec quelques détails supplémentaires fournis. J'aurais aimé te donner une meilleure réponse (avec une solution plus pratique), mais Google l'interdit ...
Izzy
Vraiment? J'ai pensé qu'ils étaient un grand fan de l'esprit open source.
Mussé Redi
"Faites juste ce que je dis, ne faites pas ce que je fais". Distinguez les fleurs des fruits. Proclamé "open source", Google mélange entre autres beaucoup de choses propriétaires. Et la «liberté» devient plus restreinte avec chaque nouvelle version d'Android. Mais ce n'est pas un sujet ici :)
Izzy

Réponses:

9

L'une des restrictions introduites avec était de déplacer l' WRITE_EXTERNAL_STORAGEautorisation au niveau de protection "SignatureOrSystem", ce qui signifie que même si demandé, une "application normale" (c'est-à-dire que vous installez en tant qu '"utilisateur normal" sans aucune spécialité racine) ne obtenir plus accordé. Il y a donc très peu de choses que vous pouvez faire pour "contourner" ceci:

  • évidemment: enraciner l'appareil et supprimer cette limite
  • utiliser le répertoire "personnel" de l' application comme stockage pour vos fichiers synchronisés (c'est <sdcard>/Android/data/<package_name>/-à- dire , car c'est le seul endroit où une application peut écrire sur SD avec Kitkat)
  • utiliser votre carte SD comme stockage (comme ici, la limitation ne s'applique pas)
Izzy
la source
Quels sont les inconvénients de rooter un appareil Android? La garantie devient-elle obsolète?
Mussé Redi
Probablement. Dans l'UE, il existe une loi pour cela, faisant la distinction entre garantie et garantie. L'un d'eux est imposé par la loi (et ne peut pas être obsolète par l'enracinement), l'autre est une offre non obligatoire du fabricant, et avec cela la décision prise par lui. Apparence différente en dehors de l'UE, donc pas de réponse définitive ici.
Izzy
1

Vous pouvez toujours retirer la carte SD externe de l'appareil et la brancher sur votre PC. La plupart des PC ne prennent pas en charge les micro-cartes SD, mais vous pouvez utiliser un adaptateur. Plus d'infos ici: https://en.wikipedia.org/wiki/Secure_Digital#Micro

Si la carte SD externe est montée sur votre PC, vous pouvez alors lire et écrire tous les fichiers dessus :-)

guettli
la source
C'était plus une sorte d'exercice pour voir jusqu'où vous pouvez aller avec ssh sur un appareil Android plutôt que d'accéder au contenu de la carte SD.
Mussé Redi