[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