Conseils utiles

Obtenir le chemin vers une carte SD Android

Pin
Send
Share
Send
Send


| 18.04.2017

Ce n'est un secret pour personne que le système d'exploitation Android répandu dans le monde mobile.

Une telle utilisation généralisée de l’idée-pensée de Google provoque une augmentation du nombre d'attaques de pirates sur cette plate-forme. Afin de faire face à ce moment désagréable, le géant de l'informatique tente d'introduire de nouvelles fonctionnalités visant à accroître la sécurité des propriétaires d'appareils dotés du système Android, mais certaines de ces fonctions pourraient devenir une source de désagrément supplémentaire. Comment éliminer l'un de ces inconvénients sera discuté ci-dessous.

Restreindre l'accès à la carte mémoire

Pourquoi les programmes Android n'ont pas accès à la racine de la carte SD?
Le fait est que l’accès ouvert à la racine du lecteur constitue une grave faille de sécurité pour l’ensemble du système d’exploitation. En tentant de protéger les utilisateurs contre les utilisateurs malveillants, Google a pris une mesure telle que la restriction de l’accès à une carte mémoire.

Cette situation ne convient pas à tout le monde. Nous allons donc examiner ci-dessous un moyen de redonner aux programmes tiers l'accès à la racine de la carte mémoire.

NextApp SDFix

Immédiatement, nous constatons que pour résoudre le problème, nous avons besoin de droits racine pour l'utilisateur dans le système Android. Dans l'article Nous supprimons les publicités sur Android. Fichier d'hôtes nous avons déjà abordé cette définition. Ci-dessous un court extrait:

racine - Ce sont des droits de superutilisateur sur les systèmes de type UNIX. Pour être plus précis, alors racine - Il s'agit d'un compte dont le propriétaire dispose de droits d'accès privilégiés et de modifications du système de fichiers.

Donc, en fait, nous avons deux options:

  • logiciel (en mode automatique),
  • manuel (édition de fichiers système).

Pour utiliser la méthode du logiciel, nous devons télécharger l'application sur notre appareil. SDFix: KitKat inscriptible MicroSD de l'entreprise Nextapp à partir du magasin Google Play ou du fichier joint à cet article: nextapp.sdfix

Installez le programme et exécutez-le en donnant l'autorisation de root

Nous acceptons d'apporter des modifications et cliquez sur le bouton Continuer
Après quelques temps d'attente, le programme affichera un message sur la réussite de l'opération.

En outre, avant d'apporter des modifications au programme SDFix crée une copie de sauvegarde des fichiers modifiables, qui est sauvegardée en cours de route

Si nécessaire, nous pouvons toujours restaurer le fichier original, après avoir préalablement supprimé le fichier de fin. .original-pre-sdfix en son nom. Le fichier est remplacé par analogie avec son changement, ce processus est décrit ci-dessous.

Fournir manuellement un accès à une carte mémoire sur Android

Le dépannage de l’enregistrement sur une carte SD externe sous Android 4.4+ est également possible en mode manuel.
Il faut comprendre que le programme SDFix susmentionné n’exécute qu’une fonction qui peut être reproduite indépendamment.

De plus, si le programme génère une erreur en cours d’exécution, une opération identique peut être couronnée de succès.

Voici une instruction pas à pas pour éditer un fichier platform.xml

  1. Nous faisons une sauvegarde du système de smartphone. Nous avons besoin d'une sauvegarde pour pouvoir effectuer une restauration en cas de circonstances imprévues et d'échecs. Vous pouvez simplement faire une copie du fichier que nous allons modifier, mais il sera plus fiable de faire une sauvegarde complète du système à partir de la récupération.
  2. Maintenant, lancez n'importe quel gestionnaire de fichiers Android, disons que ce sera Commandant total
  3. Aller au répertoire
  4. Copiez le fichier du répertoire platform.xml à n'importe quel endroit commode
  5. Ouvrez le fichier créé avec un éditeur de texte pour apporter des modifications
  6. Nous trouvons dans le fichier un morceau de code qui ressemble à:
  7. Et avant la balise de fermeture, écrivez la ligne suivante:

En conséquence, nous devrions obtenir le fragment de code suivant:

  • Enregistrer les modifications
  • Copiez le fichier modifié dans le dossier / system / etc / permissions /, convenir d’un remplacement (c’est-à-dire, lorsque vous y êtes invité, cliquez sur Remplacer)
  • Maintenant, dans les propriétés du fichier, nous définissons les droits rw-r - r-- (le code correspondant à ce réglage est 0644)
  • Nous redémarrons l'appareil.
  • C’est tout. Après le démarrage de votre appareil, les applications tierces pourront écrire leurs données à la racine de notre carte flash.

    Nous avons fourni l'accès à la racine de la carte mémoire pour les programmes Android.

    Droits complets et possibilités illimitées.

    Terminologie

    Google nous dit qu'il existe les concepts suivants:

    1. Interne (interne) La mémoire fait partie de la carte mémoire intégrée au téléphone. Lors de son utilisation, le dossier de l'application est par défaut protégé de l'accès par d'autres applications (Utilisation du stockage interne).
    2. Externe (externe) la mémoire est un «stockage externe» commun, c’est-à-dire il peut s'agir d'une partie de la mémoire interne ou d'un périphérique amovible. Habituellement, cela fait partie de la mémoire intégrée, la dernière fois que j'ai vu un périphérique amovible sous Android 2.2, où la mémoire intégrée faisait environ 2 Go, et la mémoire connectée est devenue externe (Utilisation du stockage externe).
    3. Deleteable (amovible) mémoire - tous les stockages pouvant être retirés de l'appareil sans intervention "chirurgicale".

    Avant KitKat 4.4, l'API ne fournissait pas de fonctionnalité permettant d'obtenir des chemins vers la mémoire externe. A partir de cette version (API 19), la fonction public abstract File [] getExternalFilesDirs (Type de chaîne), qui renvoie un tableau de chaînes avec des chemins d'accès vers la mémoire interne et externe. Mais qu'en est-il de notre carte SD, qui est insérée dans la fente? Le chemin qui y mène ne peut à nouveau pas être atteint.

    Méthode 1 (option simple)

    Une fois que Root est installé sur votre smartphone ou votre tablette Android, accédez au magasin d'applications Google Play et téléchargez-le. SDFix: KitKat inscriptible MicroSD (gratuit). Après l'installation, allez à l'application SDFix et cliquez sur "Continuer"

    Attendez ensuite quelques secondes jusqu'à ce que l'erreur soit corrigée. Fermez SDFix et redémarrez Android pour que les modifications prennent effet! C’est tout!

    Méthode 2 (simple, une option pour ceux qui veulent en savoir plus)

    La méthode décrite ci-dessus est automatisée, mais vous pouvez la corriger à la main, surtout que ce n'est pas du tout difficile! Pour ce faire, vous devez installer l’application de gestion de fichiers, par exemple ES Explorer, après avoir préalablement attribué un accès racine à la partition système.

    Allez le gestionnaire de fichiers sur la partition système:

    Puis ouvrez-le avec l'éditeur de texte intégré ES Explorer

    Ajoutez un autre paramètre juste en dessous.

    Redémarrez votre smartphone ou tablette Android pour que les modifications prennent effet! Le problème d'accès à la carte mémoire a été résolu!

    La méthode en présence d'un accès root (n'importe quel gestionnaire racine est approprié).

    Nous avons donc besoin du programme SDFix (disponible sur Google Play), ouvrez le lien et cliquez sur Installer.

    Nous commençons, lisez l'avertissement qu'il est possible de casser le téléphone, mais nous avons de la chance, donc nous appuyons sur le bouton Continuer.

    Cochez la case et cliquez à nouveau. Continuer

    Après avoir cliqué sur l'application, le programme nécessitera un accès root à partir du périphérique. Si vous avez SuperSU, alors nous donnons root, sinon, nous voyons ce message:

    Comme je l’ai dit, je vais utiliser la racine intégrée, nous cherchons donc le “La sécurité»Sur le bureau et lancez l'application. Cliquez sur le bouton "Les permissions«.

    Et nous tapotons sur notre SDFix, si vous ne l'avez pas dans les listes, alors vous n'avez pas franchi les premières étapes de cette instruction, pour utiliser la racine standard, une demande de l'application est requise.

    Nous attendons cinq secondes et confirmons la permission d’accorder des droits plus importants.

    Ouvrez à nouveau SDFix et répétez les premières étapes de cette instruction, la sortie sera la fenêtre suivante.

    Il indique que toutes les applications qui l'ont demandé ont reçu l'accès au lecteur flash USB et que vous devez redémarrer le téléphone. Nous redémarrons et rappelons qu'après la mise à jour du firmware, les étapes devront être répétées.

    Méthode pour les téléphones sans racine

    Si quelqu'un ne comprend toujours pas, alors presque tout ce site est une réécriture de qualité, un texte sur le complexe, récrit par moi-même dans le langage le plus simple possible. Je n’indique pas les sources, je cherche simplement de l’inspiration dans les articles d’autres personnes et je n’essaie pas de les copier. Donc, ici, ils ont envoyé un lien vers un article avec cette méthode dans le commentaire, alors pourquoi ne pas le réécrire pour aider les utilisateurs sans root qui ont déjà atteint ce site.

    Je vais passer à MIUI 8 à partir de miui.su, l’accès au lecteur flash USB est toujours défini par défaut. Je ne peux donc pas vérifier, mais selon l’idée, cette méthode peut également convenir à d’autres versions d’Android.

    Ouvrez «Paramètres» → faites défiler la liste et cliquez sur «Toutes les applications».

    Faites défiler vers le bas et voir «Documents» marqué «Désactivé». Appuyez dessus.

    Au bas de l'écran, cliquez sur le bouton "Activer".

    La chose la plus intéressante est qu’il ne semble pas l’éteindre manuellement, mais bon, nous n’en avons pas besoin. Nous allons chez le gestionnaire de fichiers qui avait besoin d'un accès et vérifions sa disponibilité.

    Comme tout. J'espère que cet article vous a été utile. Cliquez sur l'un des boutons ci-dessous pour en parler à vos amis. Abonnez-vous également aux mises à jour du site en entrant votre adresse électronique dans le champ à droite ou en vous abonnant au groupe dans Vkontakte.

    Merci pour votre attention

    Résultats de la recherche

    Pour répondre à cette question, je me suis tourné vers Google, qui sait tout. Mais il ne m'a pas répondu clairement. De nombreuses options ont été prises en compte pour déterminer l'utilisation de fonctions standard menant à la mémoire externe, mais elles n'ont rien à voir avec les périphériques de stockage supprimés, mais également le traitement des règles de montage de périphériques (Android fonctionne sur le noyau Linux). Dans ce dernier cas, des chemins «câblés» vers le dossier avec les périphériques montés ont été utilisés (dans différentes versions, ce répertoire est différent). N'oubliez pas que les règles de montage changent d'une version à l'autre.

    Finalement, j'ai décidé de combiner toutes les connaissances acquises et j'ai écrit mon propre cours, ce qui peut nous renvoyer les chemins vers des périphériques externes et amovibles.

    Description du code

    La classe a été créée Mountdevice, qui contient le chemin du périphérique, le type de périphérique et du hachage.
    Il existe deux types de périphériques alloués (je n'ai pas touché la mémoire interne, son accès étant accessible via l'API du système).


    Et une classe a été créée Storagehelper, qui recherche les cartes mémoire disponibles.

    La classe StorageHelper implémente deux méthodes de recherche - à travers l’environnement système (Environnement) et en utilisant l'utilitaire Linux monter, ou plutôt le résultat de sa mise en œuvre.

    Méthode 1 - Environnement

    Lorsque je travaille avec l'environnement, j'utilise la fonction standard getExternalStorageDirectory () pour obtenir des informations sur la mémoire externe. Pour obtenir des informations sur la mémoire supprimée, j'utilise la variable d'environnement "SECONDARY_STORAGE".

    La mémoire externe est toujours une et le reste toujours. Nous vérifions sa lisibilité, calculons le hachage et nous en souvenons. Il peut y avoir beaucoup de mémoire supprimée, il est donc nécessaire de scinder la chaîne résultante par le séparateur et de vérifier chaque valeur.

    La solution provient de stackoverflow. La réponse est quelque part quelque part.

    Méthode deux - monter

    Comme pendant longtemps je ne pouvais pas que le système me dise le chemin de la mémoire supprimée, j'ai décidé de regarder dans la direction des périphériques montés. Le système contient des fichiers de configuration décrivant les règles de montage de périphériques externes. Tout irait bien, mais sur Android version 4. * Il n'y a pas d'accès de simples mortels à ce fichier, donc je ne considérerai pas cette méthode.

    Retour à l'utilitaire de montage. Lorsqu'elle est lancée sans paramètres, la commande renvoie une liste des systèmes de fichiers montés. Les périphériques supprimés ont généralement le format du système de fichiers FAT, nous mettrons en surbrillance les lignes contenant une caractéristique "gras". La mémoire externe sera caractérisée par le paramètre."fusionner".

    Remarque: lors de l'utilisation de cette méthode, elle n'est pas toujours correcte (je n'ai probablement pas pris en compte quelque chose), les types de périphériques montés sont déterminés. J'ai remarqué la différence sur les différentes versions d'Android. Par conséquent, cette méthode peut être utilisée comme une méthode supplémentaire.

    La solution provient de stackoverflow. Les réponses sont à peu près les mêmes.

    A propos de la duplication

    Beaucoup ont remarqué l'image suivante dans le répertoire de montage du périphérique:

    Et le plus intéressant, c'est la même carte mémoire externe. Une telle fragmentation commence par la version de Jelly Bean et prend en charge le mode multi-utilisateurs du système. Plus de détails ici. Et ainsi, afin de ne pas obtenir la même carte mémoire en tant que périphériques différents, un moyen de déterminer l’identité est nécessaire. S'il y avait un accès à la configuration de montage, il n'y avait alors aucune question. Mais il n'y a pas d'accès. Par conséquent, ici, j’ai espionné une solution avec un calcul de hachage pour chaque appareil:

    1. créer StringBuilder
    2. y écrire la taille totale de l'appareil et la taille de l'espace utilisé de l'appareil
    3. contourner le contenu de la racine de l'appareil
    4. écrivez le nom du répertoire
    5. écrivez le nom du fichier et sa taille
    6. calculer le hachage

    Regarde la vidéo: TUTO Déplacer ses applications Android sur la carte SD externe (Août 2022).

    Pin
    Send
    Share
    Send
    Send