5 votes

Mediascanner scan from system directory /data

Comment puis-je faire en sorte que mediascanner analyse la mémoire du téléphone, c'est-à-dire le répertoire /data ? Je veux tester la lecture de MP3 à partir de ce répertoire.

Quand j'essaie de le pirater en remplaçant le "pathStr" de /mnt/sdcard par /data avant MediaScanner::doProcessDirectory(), cela échoue en disant

W/MediaScanner( 1713): Erreur lors de l'ouverture du répertoire '/data/', l'omission : Permission refusée.

Et également planté (probablement en free).

Je veux juste lire des MP3 stockés dans la mémoire du téléphone et éviter de lire la carte SD pour quelques expériences.

2voto

ce4 Points 14264

EDIT: Ceci est rendu obsolète avec Jelly Bean. Android 4.1+ a une section unifiée /data/ et /sdcard (la partition sdcard est émulée et réside réellement dans /data/media, elle est exposée via une couche fuse spéciale pour émuler le comportement FAT32)

Mes pensées à ce sujet:

  • Le scanner multimédia scanne tout en dessous de /mnt
  • /data/* est protégé, seules les applications individuelles peuvent accéder à leur dossier (/data/data/[nom de package de l'application])

Pour le faire fonctionner comme vous le souhaitez:

  • Vous avez besoin des droits root (évidemment)
  • créez un lien symbolique /mnt/music vers /data/data/votre-emplacement-musique
  • vous pouvez également effectuer un montage par liaison au lieu d'un lien symbolique:
    mount --bind /data/votre-emplacement-musique /mnt/sdcard/votre-emplacement-musique
  • Augmentez les droits d'accès en conséquence (chmod -R ugo+rw /data/data/votre-emplacement-musique)

J'espère que cela fonctionne (le scanner devrait analyser tout /mnt puisqu'il y a aussi /mnt/emmc et autres). Si ce n'est pas le cas, vous pouvez également monter par liaison un dossier /data/data/* vers /mnt/sdcard/votre-musique (comme c'est fait avec /mnt/sdcard/.android_secure (voir la réponse))

0voto

Nick Pierpoint Points 7976

Pour meubler mes réflexions, se concentrer uniquement sur le media-scanner intégré ne suffira pas, car cela nécessite de créer votre propre ROM ! La raison en est que le media-scanner est signé avec un certificat système qui est partagé avec la ROM en question.

Et donc, cela nécessite d'avoir les clés signées de la ROM d'origine afin de remplacer le media-scanner intégré.

En ce qui concerne le fait de mettre des fichiers MP3 dans le dossier /system/media/audio - pourquoi ? Parlons-nous de fichiers MP3 d'albums qui peuvent atteindre entre 5 et 8 Mb de taille ? Ou parlons-nous d'Ogg Vorbis pour sonneries/notifications ?

La partition /system est limitée en taille en fonction de la configuration du fabricant en termes de disposition des partitions.

Si les médias audio sont stockés sur la carte SD dans les répertoires respectifs /sdcard/media/audio/Ringtones et /sdcard/media/audio/notifications, ainsi qu'une URI (Uniform Resource Identifier) pointant vers le média approprié déclaré comme "média de stockage externe" comme dans "MediaStore.Audio.Media.EXTERNAL_CONTENT_URI" (voir la Documentation pour les développeurs à ce sujet), ils seront détectés par Android lui-même et apparaîtront dans Paramètres > Sons, comme 'Sonnerie de téléphone' ou 'Sonnerie de notification'.

En fonction de la ROM en elle-même, il peut y avoir des outils de développement appelés 'Outils Dev', où il y a une activité qui peut déclencher l'invocation du media-scanner intégré, ceci est dans le stock/vanille AOSP Android.

-1voto

Galaxy Z Flip 3 Points 12200

Si vous avez un système de fichiers Linux standard (c'est-à-dire pas FAT32) sur votre carte SD, vous pourriez créer un lien symbolique de /data dans /mnt/sdcard.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X