@@ -50,6 +50,7 @@ public void doHook() throws Throwable {
5050 @ Override
5151 protected void afterHookedMethod (MethodHookParam param ) throws Throwable {
5252 int source = (int ) param .args [0 ];
53+ XposedBridge .log ("WaEnhancer: AudioRecord Source " + source );
5354 if (source == android .media .MediaRecorder .AudioSource .VOICE_COMMUNICATION ) {
5455 sampleRate = (int ) param .args [1 ];
5556 int channelConfig = (int ) param .args [2 ];
@@ -109,26 +110,34 @@ private synchronized void startRecording() {
109110 if (Environment .isExternalStorageManager ()) {
110111 parentDir = new File (Environment .getExternalStorageDirectory (), "WA Call Recordings" );
111112 } else {
112- parentDir = new File (outputDir );
113+ // Fallback to safe external storage (Android/data/com.whatsapp/files/Recordings)
114+ parentDir = new File (com .wmods .wppenhacer .xposed .core .FeatureLoader .mApp .getExternalFilesDir (null ), "Recordings" );
113115 }
114116
115- // Subfolders: Package Name -> Audio (Default, since type detection is complex here)
116117 File dir = new File (parentDir , appName + "/Audio" );
117- if (!dir .exists ()) dir .mkdirs ();
118+ if (!dir .exists ()) {
119+ boolean created = dir .mkdirs ();
120+ if (!created ) {
121+ XposedBridge .log ("WaEnhancer: Failed to create directory: " + dir .getAbsolutePath ());
122+ Utils .showToast ("WaEnhancer: RW Error " + dir .getAbsolutePath (), android .widget .Toast .LENGTH_LONG );
123+ return ;
124+ }
125+ }
118126
119127 String fileName = "Call_" + new SimpleDateFormat ("yyyyMMdd_HHmmss" , Locale .US ).format (new Date ()) + ".wav" ;
120128 File file = new File (dir , fileName );
121129 randomAccessFile = new RandomAccessFile (file , "rw" );
122130
123- // write placeholder header
124- randomAccessFile .setLength (0 ); // truncate
131+ randomAccessFile .setLength (0 );
125132 randomAccessFile .write (new byte [44 ]);
126133
127134 isRecording = true ;
128135 payloadSize = 0 ;
129- XposedBridge .log ("WaEnhancer: AudioRecord initiated at " + sampleRate + "Hz" );
136+ XposedBridge .log ("WaEnhancer: Recording started: " + file .getAbsolutePath ());
137+ Utils .showToast ("rec: " + file .getName (), android .widget .Toast .LENGTH_SHORT );
130138 } catch (Exception e ) {
131139 XposedBridge .log (e );
140+ Utils .showToast ("Rec Error: " + e .getMessage (), android .widget .Toast .LENGTH_LONG );
132141 }
133142 }
134143
0 commit comments