0

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.

Répondre

0

J'ai trouvé un moyen de contourner le problème d'autorisation.

D'abord, écrire le fichier journal/data/Divers/AUDIOSERVER

Puis:

adb shell su root cp /data/misc/audioserver/log_before.pcm sdcard/. 

Etc.

Et puis je peux tirer le fichier:

adb pull /sdcard/log_before.pcm .