├── FUNDING.yml
├── SUMMARY
└── README.md
/FUNDING.yml:
--------------------------------------------------------------------------------
1 | buy_me_a_coffee: androidmaestro
2 |
--------------------------------------------------------------------------------
/SUMMARY:
--------------------------------------------------------------------------------
1 | Simulate microphone input from an audio file
2 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Phantom Mic
2 |
3 | An LSPosed (Xposed/Edxposed) module to simulate microphone input 🎤 from a pre-recorded audio file, useful for **automating audio calls**
4 |
5 |
6 | Demo Video
7 |
8 | https://github.com/user-attachments/assets/12a9d229-fd8a-4370-b969-1a342360abdf
9 |
10 |
11 |
12 | ## Tested Apps
13 |
14 | | Application | Status |
15 | | ------------------ | --------- |
16 | | Facebook Messenger | ✔ Working |
17 | | Discord | ✔ Working |
18 | | Telegram | ✔ Working |
19 | | Whatsapp ** | ✔ Working |
20 | | Google Chrome | ✔ Working |
21 | | .. You tell me! | |
22 |
23 | App ** : Recordings folder defaults to /sdcard/Android/data/app_id/files/Recordings because chose folder dialog doesn't work
24 |
25 | Note: your app might work if it's not on the list, let us know if you tried it!
26 |
27 | ## Usage Guide
28 |
29 | - Enable the module for your target app
30 |
31 | - Open your target app, you'll be prompted to choose a folder it for the module files
32 |
33 | - Inside the chosen folder, copy all your audio files to be played (*.mp3, *.wav, etc)
34 |
35 | - Inside the chosen folder create a new file phantom.txt, write the name of your target audio file (without extension is also fine) and save it. The file can be left empty if you want to use your microphone as normal.
36 |
37 | Note: If the target records audio to a file, there is a chance the module won't work. This is intentional because the main purpose is using it in calls.
38 |
39 | **Bonus Tip:** use an app like *MacroDroid* or *Tasker* to automate the process
40 |
41 |
42 |
43 | Example
44 |
45 | ### Folder Structure
46 |
47 | ```
48 | CHOSEN_FOLDER
49 | |_ music.mp3
50 | |_ whatevername.wav
51 | |_ sample.aac
52 | |_ phantom.txt
53 | ```
54 |
55 | ### Inside phantom.txt
56 |
57 | ```
58 | music.mp3
59 | ```
60 |
61 |
62 |
63 | ## Requirements
64 |
65 | - Android 7+
66 |
67 | - [Root] LSPosed / Edxposed
68 |
69 | - [No Root] LSPatch theoretically works but not tested
70 |
71 |
72 |
73 | ## Module not working ?
74 |
75 | Please open a github issue.
76 |
77 | - If the app is labelled as "Working" in **Tested Apps**. Please attach libaudioclient.so, you can copy it from `/system/lib` or `/system/lib64, alongside logs.
78 |
79 | - Otherwise send play store version of the app and explain how I can test it
80 |
81 | ## Developer Notes
82 |
83 | The app relies on native hooking [AudioRecord.cpp](https://cs.android.com/android/platform/superproject/main/+/main:frameworks/av/media/libaudioclient/AudioRecord.cpp;l=1?q=AudioRecord.cpp&sq=&ss=android%2Fplatform%2Fsuperproject%2Fmain), feel free to take a look at the source code!
84 |
85 | # Links
86 |
87 | [XDA Thread](https://xdaforums.com/t/mod-xposed-phantom-mic-simulate-microphone-input-from-audio-file.4682767/#post-89623099)
88 |
--------------------------------------------------------------------------------