Release Preview 20 shared desktop, Android and Sargo updates
Restore Gaia settings and media workflows, extend native network adapters, and align the APK payload. Generate French/English changelogs and website entries from the simplified JSON source. Validation: shared JS and Tundra unit tests; desktop workflows and persistence; signed APK payload parity; Sargo RAM and installed startup with boot readback. Android runtime qualification is recorded separately.
This commit is contained in:
parent
be2cdce823
commit
1311bed5e9
170 changed files with 19698 additions and 2495 deletions
29
tundra/runtime/audio-devices.py
Normal file
29
tundra/runtime/audio-devices.py
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
#!/usr/bin/env python3
|
||||
# SPDX-License-Identifier: MPL-2.0
|
||||
"""Give the audio group access to Sargo's calibration and amplifier devices."""
|
||||
import os
|
||||
from pathlib import Path
|
||||
import stat
|
||||
import time
|
||||
|
||||
DEVICES = ('msm_audio_cal', 'msm_rtac', 'msm_cirrus_playback')
|
||||
|
||||
|
||||
def prepare(root=Path('/dev')):
|
||||
for name in DEVICES:
|
||||
path = root / name
|
||||
if not stat.S_ISCHR(path.lstat().st_mode):
|
||||
raise RuntimeError('Not an audio character device: ' + name)
|
||||
os.chown(path, 0, 1005, follow_symlinks=False)
|
||||
path.chmod(0o660)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
for attempt in range(60):
|
||||
try:
|
||||
prepare()
|
||||
break
|
||||
except FileNotFoundError:
|
||||
if attempt == 59:
|
||||
raise
|
||||
time.sleep(1)
|
||||
Loading…
Reference in a new issue