Telegram

ABLE TO SEND AND RECEIVE CALLS BUT NO SOUND

Able to send and receive calls, but no sound

We understand the frustration that arises when a custom ROM installation on an older device results in a critical loss of functionality. Specifically, when you are able to initiate and receive calls, but audio input and output are completely absent, the device becomes functionally limited. This scenario is common with older devices, particularly the LG series, when running LineageOS 22.2. In our extensive experience with Android system architecture and audio policy management, we have identified several key layers where audio routing failures occur. The lack of sound during a voice call, despite the cellular connection remaining active, usually points to a conflict in the audio HAL (Hardware Abstraction Layer), incorrect audio policy configurations, or missing proprietary blobs.

In this comprehensive guide, we will walk through the specific causes of this audio silence on LG devices running LineageOS, moving beyond simple build.prop edits to address the root of the problem. We will cover the internal workings of audio policies, the role of fluence, and advanced debugging techniques to restore call audio.

Understanding the LG Audio Architecture on LineageOS

When dealing with older LG hardware, the transition from the stock Android firmware to a custom ROM like LineageOS involves significant changes to how the device handles audio streams. The absence of sound specifically during calls, while LTE and data remain functional, indicates that the baseband and modem interfaces are communicating correctly, but the application processor is failing to route the audio data to the correct hardware interface.

The Role of the Audio HAL

The Audio HAL serves as the bridge between the high-level Android audio framework (Media Framework) and the low-level audio drivers specific to the hardware. On LG devices, manufacturers often rely on proprietary implementations that are tightly coupled with their stock ROM. When LineageOS is installed, it attempts to use a generic or community-maintained HAL. If the specific LG HAL is missing or improperly configured, the system may recognize the call state but fail to open the audio devices for playback and recording.

Audio Policy Configuration Conflicts

We often observe that the audio_policy.conf or audio_policy_configuration.xml files are the primary culprits. These files define the available audio devices (speaker, earpiece, headset, Bluetooth) and the routes allowed between them. On LG phones, the modem may report a specific audio device profile (like AUDIO_DEVICE_OUT_EARPIECE), but the policy file loaded by LineageOS might not map this device to the correct output path. This results in a “silent call” scenario where the audio stream is opened but immediately discarded because no valid sink is found.

Dissecting the Fluence Audio Algorithm

You mentioned attempting to disable Fluence in the /vendor/build.prop file. This is a logical first step, as Fluence is a suite of audio processing algorithms (noise cancellation, echo cancellation) often responsible for audio issues on custom ROMs. However, the persistence of the issue suggests that the configuration is either not applying correctly or is being overridden by another process.

What is Fluence?

Fluence, originally developed by Qualcomm, is designed to improve voice clarity in noisy environments. It uses multiple microphones to isolate the user’s voice from background noise. While beneficial, this process requires precise calibration with the device’s hardware. On older LG devices, the proprietary libraries required to run Fluence may be incompatible with LineageOS 22.2. If the system attempts to process audio through a non-functional Fluence pipeline, the audio output can be nullified entirely.

Why persist.audio.fluence.voicecall=false Didn’t Work

There are several reasons why your edit to the build.prop might not have resolved the audio issue:

  1. Proprietary Overrides: LG’s audio service may ignore system properties in favor of hardcoded values in vendor libraries.
  2. Multiple Prop Files: Android loads properties from several locations (/system, /vendor, /odm, /product). You may have edited the wrong file, or a lower-priority file might be overriding your setting.
  3. Service Restart: Changes to build.prop require a full reboot to take effect. Furthermore, if a Magisk module or a system overlay is present, it might revert these changes during boot.

Step-by-Step Troubleshooting for Silent Calls

To effectively resolve the “no sound” issue, we must methodically test and verify each layer of the audio stack. We recommend following these steps in order, ensuring that each modification is tested before moving to the next.

Step 1: Verify Hardware and Basic Audio Functionality

Before diving into deep system modifications, we must rule out physical hardware failures and basic software glitches.

  1. Test with Speakerphone: During a silent call, switch to speakerphone. If you hear audio through the speaker, the issue is isolated to the earpiece or microphone path (likely the HAL or Fluence). If there is still no sound, the issue is likely system-wide (Audio Policy or Modem interface).
  2. Reboot into Safe Mode: Boot the device into Safe Mode to disable all third-party apps. While this rarely affects the dialer directly, it eliminates interference from audio equalizers or call recording apps.
  3. Check Audio via Other Apps: Play a local audio file or a YouTube video. If media audio works but call audio does not, the issue is strictly within the voice call stream (STREAM_VOICE_CALL).

Step 2: Advanced Build.prop Modifications

While you attempted to disable Fluence, there are other properties that dictate audio routing on Qualcomm chipsets (which most LG phones utilize). We recommend adding the following properties to your /system/build.prop or /vendor/build.prop using a root file explorer or Magisk module:

# Disable fluence and voice processing
persist.audio.fluence.voicecall=false
persist.audio.fluence.speaker=false
persist.audio.fluence.voicerec=false

# Force audio routing to primary output (often fixes earpiece issues)
af.r_path=0
af.tcp_info=incoming

# Disable tunneling for audio offload (can cause silence on older kernels)
tunnel.audio.encode=false
audio.offload.buffer.size.kb=32

Note: If you are using a Magisk environment, creating a module to inject these properties is cleaner and safer than direct system partition modification, as it survives OTA updates. Since you are referencing Magisk Modules, you likely have the capacity to manage this.

Step 3: Modifying Audio Policy Configuration

If property edits fail, the next critical step is to modify the audio policy configuration. This requires root access and a text editor capable of handling XML files.

  1. Locate the File: Navigate to /vendor/etc/ or /system/etc/. Look for audio_policy_configuration.xml.
  2. Analyze the Routes: Look for the <route> tags. You need to ensure that the device attribute in the route matches the device identifiers active during a call.
  3. Force Speaker and Earpiece: If the device is routing audio to a non-existent HDMI or USB device (common glitch), you may need to comment out those routes or adjust the priority.
    • Example Fix: Ensure the <device name="earpiece" /> is correctly mapped to the primary output device.

Step 4: The Mixer Paths XML (For Microphone Issues)

If the person on the other end cannot hear you, the issue is likely in the input path. LG devices use mixer_paths.xml (often found in /vendor/etc/ or /system/etc/).

  1. Locate mixer_paths.xml.
  2. Search for “Voice” or “Call”: Look for controls labeled Voice Call, Mic, or DMIC.
  3. Check Volume Levels: Sometimes, the input gain is set to 0. You can search for <ctl> tags related to ADC or PGA and ensure the values are non-zero (e.g., value=“100”).
  4. Route Fix: If the microphone is being routed to a wrong path (e.g., AnalogMic instead of DigitalMic), you may need to swap the enabled flags.

Dealing with Missing VoLTE and VoWiFi on LG Devices

You mentioned that LTE is working, but VoLTE and VoWiFi do not function due to carrier locking. This is a crucial detail. On modern Android versions, the absence of VoLTE support forces the device to drop to 2G/3G for voice calls. However, if your LTE data is active and the call drops to a legacy network mode that the custom ROM does not fully support, audio routing can break.

The 2G/3G Fallback Issue

If your device is on an LTE network but the call setup defaults to a legacy circuit-switched network, the audio HAL might not be initialized for that specific network type.

  1. Force LTE Only: Go to Settings > Network & Internet > Mobile Network > Preferred Network Type.
  2. Select LTE/4G only: While this prevents incoming calls if the carrier doesn’t support VoLTE, it helps diagnose if the audio issue is tied to 2G/3G handshake failures. If you cannot select this, use a dialer code like *#*#4636#*#* to access the testing menu.
  3. Modem Firmware Mismatch: LG devices often have specific modem firmware versions. If LineageOS 22.2 expects a different modem version, the audio packets (RTP) may not be encapsulated correctly. You may need to flash a compatible modem.bin via a custom recovery.

Advanced Debugging: Logcats and Audio Hal Logs

For users comfortable with command-line tools, extracting logs is the most direct way to identify the silence.

Capturing the Logcat

We need to see what the Android audio server (audioserver) is doing during a call.

  1. Connect your device to a PC with ADB debugging enabled.
  2. Clear the current logs: adb logcat -c
  3. Start the logcat and save it to a file: adb logcat -d > audio_log.txt
  4. Initiate a call. Reproduce the silence.
  5. Stop the logcat.

Analyzing the Audio Stream

Search the saved log for keywords:

If you see errors related to FM Radio or VoIP during a cellular call, it indicates a conflict where the HAL is trying to use the wrong audio path (often FM is mapped to the same output as voice on LG devices).

Magisk Module Solutions

Since you mentioned the Magisk Module Repository, we should explore modules that specifically target audio stability on custom ROMs.

Universal GMS Doze

While not an audio module, aggressive battery optimization can kill the audioserver or modem interfaces. Ensuring that Google Play Services and the Phone app are whitelisted is essential.

Audio Modification Modules

Look for modules in the repository that specifically modify the audio_effects.conf or mixer_paths. Modules like “Audio Modification Library” (AML) can sometimes provide compatibility layers for older devices. However, on LineageOS 22.2, ensure the module is compatible with the Android version (likely Android 14 or 15). Incompatible audio mods are a leading cause of total audio loss.

Creating a Custom Module for LG Audio

If no pre-existing module works, we recommend building a simple Magisk module to override the problematic LG audio files.

  1. Mount: Create a module folder structure.
  2. System Props: Include a system.prop file with the Fluence and audio force-enable properties.
  3. File Replacement: If you identify a specific mixer_paths.xml that works (perhaps from an older LineageOS build for the same device), place it in the module’s system/etc/ folder. This will overlay the default LineageOS file at boot.

Microphone Not Working: Specific Hardware Checks

If the user can hear the caller but the caller cannot hear you, the issue is strictly input-based. On LG devices, this is often related to the “Headset Mic” detection glitch.

Phantom Headset Detection

The device might think a headset is plugged in, thereby routing the microphone input to the 3.5mm jack (which is empty) instead of the built-in microphone.

  1. Check the Audio Route: Use a system app like “Simple System Monitor” or a terminal command to check the current audio route.
  2. Disable Headset Control: In mixer_paths.xml, you can try to disable the headset detection pin or force the main mic to be active regardless of insertion state.
    • Search for Jack or Headset in the XML and look for <ctl name="Jack Detect" value="..." />. Changing this to 0 (Disable) can sometimes force the system to use the primary mic.

Calibrating Microphone Gain

In the same mixer_paths.xml, the microphone gain (PGA) is critical. On LG phones, the values are often indexed.

Hardware-Specific Considerations for LG Phones

LG phones (such as the V-series, G-series, or Stylo series) have unique hardware configurations that require specific attention.

Quad-DAC and Audio Chips

High-end LG phones feature a Quad-DAC (ESS Sabre). This chip is powerful but notoriously difficult to drive on custom ROMs.

Carrier Variants (H-Series, MS-Series)

If your LG phone is a carrier variant (e.g., AT&T, Verizon, T-Mobile), the modem and audio partitions are heavily modified by the carrier.

Kernel-Level Audio Debugging

If userspace solutions (ROM, Apps, Magisk) fail, the issue may reside in the kernel.

Check ALSA Controls

Android uses ALSA (Advanced Linux Sound Architecture). You can access these controls via a root terminal.

  1. Install a terminal app.
  2. Type su to gain root.
  3. Type tinymix or alsamixer (if available).
  4. This displays a list of audio controls. Look for “Voice Call”, “Speaker”, “Earpiece”, and “Mic”.
  5. Ensure the volume sliders are not muted (Mute vs. 0 volume). If tinymix shows Mute for “Voice Call”, unmute it using the command tinymix "Voice Call" [volume] [on/off].

Kernel Source Modifications

If you are compiling your own kernel (often necessary for older LG devices on newer Android versions), ensure that the defconfig includes the necessary audio drivers.

Final Recommendations and Workflow

To resolve the issue on your LG device running LineageOS 22.2, follow this consolidated workflow:

  1. Test Speakerphone: Determine if the issue is input (mic) or output (speaker/earpiece) specific.
  2. Apply Force-Enable Properties: Use Magisk to push the persist.audio.fluence.voicecall=false and related audio routing properties.
  3. Patch Audio Policy: Manually inspect and edit audio_policy_configuration.xml to ensure correct device routing. Comment out any routes involving HDMI or USB if they are conflicting.
  4. Check for Phantom Headset: Modify mixer_paths.xml to disable headset detection and force primary mic usage.
  5. Verify Modem/Kernel Compatibility: Ensure the LineageOS build is specifically designed for your exact LG model number. If it is a generic build, you may need to flash specific modem.bin files from the stock firmware via TWRP.
  6. Logcat Analysis: If all else fails, capture a logcat during a call attempt. Look for AudioFlinger and AudioPolicy errors to pinpoint the exact HAL rejection code.

By systematically addressing the Audio HAL, Fluence properties, and hardware-specific routing paths, we can usually restore call audio functionality. The key lies in the precise configuration of the mixer_paths.xml and audio_policy_configuration.xml, which govern how the Linux kernel routes audio streams to the physical hardware.

Explore More
Redirecting in 20 seconds...