[Replicant] Fw: PROBING AUDIO LINES ON THE i9305 Samsung Galaxy SIII LTE
J05HYYY
lovell.joshyyy at gmail.com
Fri Aug 11 12:43:53 UTC 2023
Fwd to the list as I meant to hit reply all.
Begin forwarded message:
Date: Fri, 11 Aug 2023 03:54:02 +0200
From: Denis 'GNUtoo' Carikli <GNUtoo at cyberdimension.org>
To: J05HYYY <lovell.joshyyy at gmail.com>
Cc: J05HYYY via Replicant <replicant at osuosl.org>
Subject: Re: [Replicant] PROBING AUDIO LINES ON THE i9305 Samsung
Galaxy SIII LTE
On Fri, 4 Aug 2023 18:13:04 +0100
J05HYYY <lovell.joshyyy at gmail.com> wrote:
> > alsactl: https://github.com/LineageOS/android_external_alsa-utils
>
> I am getting too many errors trying to compile this. It would probably
> be easier for me to write (a) busybox/toybox script(s) to save and
> restore settings using tinyalsa utils.
[...]
> On an x86_64 pc I ran alsactl from alsa-utils and stored the card
> setting. I don't think I will be able to replicate the same file
> format/behaviour if I were to write the scripts (unfortunately) ...
> the format looks a bit complicated for me to RE. Instead I will
> probably create a couple CSVs with the controls and their respective
> values, one without dialling and one in-call.
I am probably missing something here. Do you want to run GNU/Linux on
the phone?
Because if not tinyalsa utils is probably easiest.
For instance here we can dump the status easily:
> $ adb root
> restarting adbd as root
> $ adb shell
> root at i9300:/ # tinymix
> Mixer name: 'Midas_WM1811'
> Number of controls: 260
> ctl type num name
> value 0 ENUM 1 AIF1DRC1 Mode
> voice call DRC 1 ENUM 1 AIF1DRC2
> Mode voice call DRC 2 ENUM
> 1 AIF2DRC Mode voice call DRC
> 3 INT 1 AIF1DAC1 EQ1 Volume
> 9 4 INT 1 AIF1DAC1 EQ2 Volume
> 7 5 INT 1 AIF1DAC1 EQ3 Volume
> 10 6 INT 1 AIF1DAC1 EQ4 Volume
> 13 7 INT 1 AIF1DAC1 EQ5 Volume
> 12 8 INT 1 AIF1DAC2 EQ1 Volume
> 12 9 INT 1 AIF1DAC2 EQ2 Volume
> 12 10 INT 1 AIF1DAC2 EQ3 Volume
> 12 11 INT 1 AIF1DAC2 EQ4
> Volume 12 12 INT 1 AIF1DAC2
> EQ5 Volume 12 13 INT 1 AIF2
> EQ1 Volume 12 14 INT 1
> AIF2 EQ2 Volume 12 15 INT
> 1 AIF2 EQ3 Volume 12 16
> INT 1 AIF2 EQ4 Volume 12
> 17 INT 1 AIF2 EQ5 Volume
> 12 18 INT 1 IN1L Volume
> 11 19 BOOL 1 IN1L Switch
> On 20 BOOL 1 IN1L ZC Switch
> Off 21 INT 1 IN1R Volume
> 10 22 BOOL 1 IN1R Switch
> On 23 BOOL 1 IN1R ZC
> Switch Off 24 INT 1
> IN2L Volume 11 25 BOOL
> 1 IN2L Switch On 26
> BOOL 1 IN2L ZC Switch Off
> 27 INT 1 IN2R Volume
> 11 28 BOOL 1 IN2R Switch
> On 29 BOOL 1 IN2R ZC Switch
> Off 30 INT 1 MIXINL IN2L Volume
> 1 31 INT 1 MIXINL IN1L Volume
> 1 32 INT 1 MIXINL Output
> Record Volume 0 33 INT 1 MIXINL
> IN1LP Volume 0 34 INT 1
> MIXINL Direct Voice Volume 0 35 INT
> 1 MIXINR IN2R Volume 1 36
> INT 1 MIXINR IN1R Volume 1
> 37 INT 1 MIXINR Output Record Volume
> 0 38 INT 1 MIXINR IN1RP Volume
> 0 39 INT 1 MIXINR Direct Voice Volume
> 0 40 INT 1 Left Output Mixer IN2RN Volume
> 7 41 INT 1 Left Output Mixer IN2LN
> Volume 7 42 INT 1 Left Output Mixer
> IN2LP Volume 7 43 INT 1 Left Output
> Mixer IN1L Volume 7 44 INT 1 Left
> Output Mixer IN1R Volume 7 45 INT 1
> Left Output Mixer Right Input Volume 7 46 INT
> 1 Left Output Mixer Left Input Volume 7 47
> INT 1 Left Output Mixer DAC Volume 7
> 48 INT 1 Right Output Mixer IN2LN Volume
> 7 49 INT 1 Right Output Mixer IN2RN Volume
> 7 50 INT 1 Right Output Mixer IN1L Volume
> 7 51 INT 1 Right Output Mixer IN1R Volume
> 7 52 INT 1 Right Output Mixer IN2RP
> Volume 7 53 INT 1 Right Output Mixer
> Left Input Volume 7 54 INT 1 Right Output
> Mixer Right Input Volume 7 55 INT 1 Right
> Output Mixer DAC Volume 7 56 INT 2
> Output Volume 57 57 57 BOOL
> 2 Output Switch On On 58
> BOOL 2 Output ZC Switch Off Off
> 59 BOOL 1 Earpiece Switch
> On 60 INT 1 Earpiece Volume
> 1 61 INT 1 SPKL Input Volume
> 1 62 INT 1 SPKL IN1LP Volume
> 1 63 INT 1 SPKL Output Volume
> 1 64 INT 1 SPKR Input Volume
> 1 65 INT 1 SPKR IN1RP Volume
> 1 66 INT 1 SPKR Output
> Volume 1 67 INT 2 Speaker
> Mixer Volume 3 3 68 INT 2
> Speaker Volume 57 57 69 BOOL
> 2 Speaker Switch On On 70
> BOOL 2 Speaker ZC Switch Off Off
> 71 INT 2 Speaker Boost Volume
> 4 4 72 ENUM 1 Speaker Reference
> SPKVDD/2 73 ENUM 1 Speaker Mode
> Class D 74 INT 2 Headphone
> Volume 45 45 75 BOOL 2
> Headphone Switch On On 76 BOOL
> 2 Headphone ZC Switch Off Off 77
> BOOL 1 LINEOUT1N Switch Off
> 78 BOOL 1 LINEOUT1P Switch
> Off 79 INT 1 LINEOUT1 Volume
> 1 80 BOOL 1 LINEOUT2N Switch
> Off 81 BOOL 1 LINEOUT2P Switch
> Off 82 INT 1 LINEOUT2 Volume
> 1 83 INT 2 AIF1ADC1 Volume
> 96 96 84 INT 2 AIF1ADC2
> Volume 96 96 85 INT 2
> AIF2ADC Volume 96 96 86 ENUM
> 1 AIF1ADCL Source Left 87
> ENUM 1 AIF1ADCR Source Right
> 88 ENUM 1 AIF2ADCL Source
> Left 89 ENUM 1 AIF2ADCR Source
> Right 90 ENUM 1 AIF1DACL Source
> Left 91 ENUM 1 AIF1DACR Source
> Right 92 ENUM 1 AIF2DACL
> Source Left 93 ENUM 1
> AIF2DACR Source Left 94 INT
> 2 AIF1DAC1 Volume 96 96 95
> INT 2 AIF1DAC2 Volume 96 96
> 96 INT 2 AIF2DAC Volume
> 96 96 97 INT 1 AIF1 Boost Volume
> 0 98 INT 1 AIF2 Boost Volume
> 0 99 BOOL 1 AIF1DAC1 EQ Switch
> On 100 BOOL 1 AIF1DAC2 EQ Switch
> Off 101 BOOL 1 AIF2 EQ
> Switch Off 102 BOOL 1
> AIF1DAC1 DRC Switch Off 103 BOOL
> 1 AIF1ADC1L DRC Switch Off 104
> BOOL 1 AIF1ADC1R DRC Switch Off
> 105 BOOL 1 AIF1DAC2 DRC Switch
> Off 106 BOOL 1 AIF1ADC2L DRC Switch
> Off 107 BOOL 1 AIF1ADC2R DRC Switch
> Off 108 BOOL 1 AIF2DAC DRC
> Switch Off 109 BOOL 1
> AIF2ADCL DRC Switch Off 110 BOOL
> 1 AIF2ADCR DRC Switch Off 111
> INT 1 DAC1 Right Sidetone Volume 0
> 112 INT 1 DAC1 Left Sidetone Volume
> 0 113 INT 1 DAC2 Right Sidetone Volume
> 12 114 INT 1 DAC2 Left Sidetone Volume
> 12 115 ENUM 1 Sidetone HPF Mux
> 2.7kHz 116 BOOL 1 Sidetone HPF
> Switch Off 117 ENUM 1
> AIF1ADC1 HPF Mode HiFi 118 BOOL
> 2 AIF1ADC1 HPF Switch Off Off 119
> ENUM 1 AIF1ADC2 HPF Mode HiFi
> 120 BOOL 2 AIF1ADC2 HPF Switch
> Off Off 121 ENUM 1 AIF2ADC HPF Mode
> HiFi 122 BOOL 2 AIF2ADC HPF Switch
> Off Off 123 ENUM 1 ADC OSR
> High Performance 124
> ENUM 1 DAC OSR Low
> Power 125 INT 2 DAC1 Volume
> 96 96 126 BOOL 2 DAC1 Switch
> On On 127 INT 2 DAC2 Volume
> 96 96 128 BOOL 2 DAC2
> Switch On On 129 INT
> 1 SPKL DAC2 Volume 1 130
> INT 1 SPKL DAC1 Volume 1
> 131 INT 1 SPKR DAC2 Volume
> 1 132 INT 1 SPKR DAC1 Volume
> 1 133 INT 1 AIF1DAC1 3D Stereo Volume
> 0 134 BOOL 1 AIF1DAC1 3D Stereo Switch
> Off 135 INT 1 AIF1DAC2 3D Stereo
> Volume 0 136 BOOL 1 AIF1DAC2 3D
> Stereo Switch Off 137 INT 1
> AIF2DAC 3D Stereo Volume 0 138 BOOL
> 1 AIF2DAC 3D Stereo Switch Off 139
> INT 1 AIF3 Boost Volume 0
> 140 BOOL 1 AIF1DAC1 Noise Gate Switch
> Off 141 ENUM 1 AIF1DAC1 Noise Gate Hold Time
> 30ms 142 INT 1 AIF1DAC1 Noise Gate
> Threshold Volume 3 143 BOOL 1 AIF1DAC2 Noise
> Gate Switch Off 144 ENUM 1
> AIF1DAC2 Noise Gate Hold Time 30ms 145 INT
> 1 AIF1DAC2 Noise Gate Threshold Volume 3 146
> BOOL 1 AIF2DAC Noise Gate Switch Off
> 147 ENUM 1 AIF2DAC Noise Gate Hold Time
> 30ms 148 INT 1 AIF2DAC Noise Gate Threshold
> Volume 3 149 BOOL 1 AIF2ADCL DAT Invert
> Off 150 BOOL 1 AIF2ADCR DAT
> Invert Off 151 BOOL 1 HP
> Switch Off 152 BOOL
> 1 SPK Switch On 153
> BOOL 1 RCV Switch Off
> 154 BOOL 1 FM In Switch
> Off 155 BOOL 1 LINE Switch
> Off 156 BOOL 1 HDMI Switch
> Off 157 BOOL 1 Main Mic Switch
> Off 158 BOOL 1 Sub Mic
> Switch Off 159 BOOL 1
> Third Mic Switch On 160 BOOL
> 1 Headset Mic Switch Off 161
> ENUM 1 AIF2 Mode Slave
> 162 ENUM 1 KPCS Mode 163 ENUM
> 1 Input Clamp Off 164
> ENUM 1 LineoutSwitch Mode Off
> 165 ENUM 1 AIF2 digital mute
> Off 166 ENUM 1 ADCR Mux
> ADC 167 ENUM 1 ADCL Mux
> ADC 168 ENUM 1 Right Headphone
> Mux Mixer 169 ENUM 1 Left
> Headphone Mux Mixer 170 BOOL
> 1 SPKR DAC2 Switch Off 171
> BOOL 1 SPKR Input Switch Off
> 172 BOOL 1 SPKR IN1RP Switch
> Off 173 BOOL 1 SPKR Output Switch
> Off 174 BOOL 1 SPKR DAC1 Switch
> On 175 BOOL 1 SPKL DAC2 Switch
> Off 176 BOOL 1 SPKL Input
> Switch Off 177 BOOL 1
> SPKL IN1LP Switch Off 178 BOOL
> 1 SPKL Output Switch Off 179
> BOOL 1 SPKL DAC1 Switch On
> 180 ENUM 1 AIF3ADC Mux
> AIF2ADCDAT 181 ENUM 1 AIF2DACR Mux
> AIF2 182 ENUM 1 AIF2DACL Mux
> AIF2 183 ENUM 1 Mono
> PCM Out Mux None 184 ENUM
> 1 AIF2ADC Mux AIF2ADCDAT
> 185 ENUM 1 AIF2DAC Mux
> AIF2DACDAT 186 ENUM 1 AIF1DAC Mux
> AIF1DACDAT 187 BOOL 1 DAC1R
> Mixer Right Sidetone Switch Off 188 BOOL
> 1 DAC1R Mixer Left Sidetone Switch Off 189
> BOOL 1 DAC1R Mixer AIF2 Switch Off
> 190 BOOL 1 DAC1R Mixer AIF1.2 Switch
> Off 191 BOOL 1 DAC1R Mixer AIF1.1 Switch
> On 192 BOOL 1 DAC1L Mixer Right
> Sidetone Switch Off 193 BOOL 1 DAC1L
> Mixer Left Sidetone Switch Off 194 BOOL
> 1 DAC1L Mixer AIF2 Switch Off 195
> BOOL 1 DAC1L Mixer AIF1.2 Switch Off
> 196 BOOL 1 DAC1L Mixer AIF1.1 Switch
> On 197 ENUM 1 Right Sidetone
> ADC/DMIC1 198 ENUM 1 Left Sidetone
> ADC/DMIC1 199 BOOL 1
> AIF2DAC2R Mixer Right Sidetone Switch On 200 BOOL
> 1 AIF2DAC2R Mixer Left Sidetone Switch Off 201
> BOOL 1 AIF2DAC2R Mixer AIF2 Switch Off
> 202 BOOL 1 AIF2DAC2R Mixer AIF1.2 Switch
> Off 203 BOOL 1 AIF2DAC2R Mixer AIF1.1 Switch
> Off 204 BOOL 1 AIF2DAC2L Mixer Right
> Sidetone Switch Off 205 BOOL 1 AIF2DAC2L
> Mixer Left Sidetone Switch On 206 BOOL 1
> AIF2DAC2L Mixer AIF2 Switch Off 207 BOOL
> 1 AIF2DAC2L Mixer AIF1.2 Switch Off 208
> BOOL 1 AIF2DAC2L Mixer AIF1.1 Switch Off
> 209 BOOL 1 AIF1ADC2R Mixer DMIC Switch
> Off 210 BOOL 1 AIF1ADC2R Mixer AIF2 Switch
> Off 211 BOOL 1 AIF1ADC2L Mixer DMIC
> Switch Off 212 BOOL 1 AIF1ADC2L
> Mixer AIF2 Switch Off 213 BOOL 1
> AIF1ADC1R Mixer ADC/DMIC Switch On 214 BOOL
> 1 AIF1ADC1R Mixer AIF2 Switch Off 215
> BOOL 1 AIF1ADC1L Mixer ADC/DMIC Switch On
> 216 BOOL 1 AIF1ADC1L Mixer AIF2 Switch
> Off 217 BOOL 1 LINEOUT2P Mixer Right Output
> Switch On 218 BOOL 1 LINEOUT2N Mixer Left
> Output Switch On 219 BOOL 1 LINEOUT2N
> Mixer Right Output Switch Off 220 BOOL 1
> LINEOUT1P Mixer Left Output Switch On 221 BOOL
> 1 LINEOUT1N Mixer Left Output Switch Off 222
> BOOL 1 LINEOUT1N Mixer Right Output Switch On
> 223 BOOL 1 SPKR Boost Direct Voice Switch
> Off 224 BOOL 1 SPKR Boost SPKL Switch
> Off 225 BOOL 1 SPKR Boost SPKR Switch
> On 226 BOOL 1 SPKL Boost Direct
> Voice Switch Off 227 BOOL 1 SPKL Boost
> SPKL Switch On 228 BOOL 1 SPKL
> Boost SPKR Switch On 229 BOOL
> 1 Earpiece Mixer Direct Voice Switch Off 230
> BOOL 1 Earpiece Mixer Left Output Switch On
> 231 BOOL 1 Earpiece Mixer Right Output Switch
> On 232 BOOL 1 Right Output Mixer Left Input
> Switch Off 233 BOOL 1 Right Output Mixer
> Right Input Switch Off 234 BOOL 1 Right
> Output Mixer IN2LN Switch Off 235 BOOL
> 1 Right Output Mixer IN2RN Switch Off 236
> BOOL 1 Right Output Mixer IN1L Switch Off
> 237 BOOL 1 Right Output Mixer IN1R Switch
> Off 238 BOOL 1 Right Output Mixer IN2RP
> Switch Off 239 BOOL 1 Right Output
> Mixer DAC Switch On 240 BOOL 1 Left
> Output Mixer Right Input Switch Off 241 BOOL
> 1 Left Output Mixer Left Input Switch Off 242
> BOOL 1 Left Output Mixer IN2RN Switch Off
> 243 BOOL 1 Left Output Mixer IN2LN Switch
> Off 244 BOOL 1 Left Output Mixer IN2LP Switch
> Off 245 BOOL 1 Left Output Mixer IN1R
> Switch Off 246 BOOL 1 Left Output
> Mixer IN1L Switch Off 247 BOOL 1 Left
> Output Mixer DAC Switch On 248 BOOL
> 1 MIXINR IN2R Switch Off 249
> BOOL 1 MIXINR IN1R Switch Off
> 250 BOOL 1 MIXINL IN2L Switch
> Off 251 BOOL 1 MIXINL IN1L Switch
> Off 252 BOOL 1 IN2R PGA IN2RP Switch
> On 253 BOOL 1 IN2R PGA IN2RN
> Switch On 254 BOOL 1 IN2L PGA
> IN2LP Switch On 255 BOOL 1
> IN2L PGA IN2LN Switch On 256 BOOL
> 1 IN1R PGA IN1RP Switch On 257
> BOOL 1 IN1R PGA IN1RN Switch On
> 258 BOOL 1 IN1L PGA IN1LP Switch
> On 259 BOOL 1 IN1L PGA IN1LN Switch
> On
If your goal is GNU/Linux, you could still do the tests on Android and
then when you have your diff, try to manually do the control changes
with alsamixer or some other tool (and also use alsactl too to be able
to restore before and after your manual changes).
Note that you can still run GNU/Linux in a chroot in the phone but
that's far from trivial to do as the kernel is old, so you'd need to
find an old version of a distribution that works on armv7 and find a
way to copy the chroot to the phone and then use the utilities there to
dump and restore the control states.
This also affect statically compiling things for ARM as here the if the
libc used in the cross compilation is built with kernel headers for
kernels that are too recent that won't work.
Denis.
More information about the Replicant
mailing list