Je tente d'écrire un fichier journal simple à l'intérieur de av/services/audioflinger/AudioStreamOut.cpp, pour tester une ROM personnalisée. J'en ai besoin pour travailler sur le Nexus 5X (bullhead).Tentative d'ouverture du fichier de sortie dans audioflinger (AOSP)
if (logFile1 == NULL)
logFile1 = fopen("/sdcard/log_before.pcm", "ab");
if (logFile1 == NULL)
ALOGE("can't open 1, errno %d", errno);
Je reçois l'autorisation refusée (ERRNO est 13).
J'ai essayé de modifier les cadres/base/données/etc/platform.xml en ajoutant les éléments suivants:
<assign-permission name="android.permission.WRITE_EXTERNAL_STORAGE" uid="media" />
<assign-permission name="android.permission.WRITE_EXTERNAL_STORAGE" uid="audioserver" />
<assign-permission name="android.permission.WRITE_EXTERNAL_STORAGE" uid="audio" />
Encore aucun changement. Comment puis-je faire fonctionner cela? Ou y a-t-il un autre endroit dans le système de fichiers où un service système comme audioflinger est supposé utiliser pour écrire des fichiers?
MISE À JOUR:
Je viens de trouver une solution qui fonctionne pour émulateur - dans Android N, écrivez à/data/Divers/AUDIOSERVER. Lorsque j'utilise le shell ADB, il me montre que ce dossier particulier a le groupe "audioserver", c'est pourquoi cela fonctionne.
Je trouve sur ce dossier à partir de ce lien: https://source.android.com/devices/audio/debugging.html
Mais ce dossier ne semble pas accessible sur Nexus 5X - ne peut pas y accéder avec la coquille, même avec la racine su.