A small helpdesk system: an office Pixel running a patched GrapheneOS Dialer answers technician calls, records both call legs as separate channels, and a Ruby backend transcribes them through Whisper and files an AI summary against the caller. Squashed to a single commit for sharing. No credentials are included; secrets live outside the repo in /etc/helpdesk/env on the server or a gitignored .claude/env.local locally. See .claude/env.local.example for the shape. Start at README.md, then docs/architecture.md.
53 lines
2.3 KiB
Diff
53 lines
2.3 KiB
Diff
diff --git a/private/priv_app_all.te b/private/priv_app_all.te
|
|
index 49cbc8fc1..de1e0dfa6 100644
|
|
--- a/private/priv_app_all.te
|
|
+++ b/private/priv_app_all.te
|
|
@@ -174,6 +174,9 @@ get_prop(priv_app_all, incremental_prop)
|
|
# allow privileged apps to read the device config flags.
|
|
get_prop(priv_app_all, device_config_aconfig_flags_prop)
|
|
|
|
+# Helpdesk: the patched Dialer reads its backend config (ro.helpdesk.* / persist.helpdesk.*)
|
|
+get_prop(priv_app_all, helpdesk_prop)
|
|
+
|
|
# allow privileged apps to read boot reason property
|
|
get_prop(priv_app_all, system_boot_reason_prop)
|
|
|
|
diff --git a/private/property.te b/private/property.te
|
|
index 384cd3c06..e3e65b5cb 100644
|
|
--- a/private/property.te
|
|
+++ b/private/property.te
|
|
@@ -1,5 +1,7 @@
|
|
# Properties used only in /system
|
|
system_internal_prop(adb_timeout_prop)
|
|
+# Helpdesk backend config (ro.helpdesk.* / persist.helpdesk.*) — read by the Dialer (priv_app), set by shell (dev)
|
|
+system_internal_prop(helpdesk_prop)
|
|
system_internal_prop(adbd_prop)
|
|
system_internal_prop(adbd_tradeinmode_prop)
|
|
system_internal_prop(aiseal_prop)
|
|
diff --git a/private/property_contexts b/private/property_contexts
|
|
index df2d360c0..88ac9d761 100644
|
|
--- a/private/property_contexts
|
|
+++ b/private/property_contexts
|
|
@@ -88,6 +88,8 @@ persist.pcc.audit_mode.batching.max_batch_size u:object_r:pcc_audit_mode_client
|
|
persist.pcc.audit_mode.batching.flush_time_ms u:object_r:pcc_audit_mode_client_prop:s0 exact int
|
|
persist.profcollectd.enabled u:object_r:profcollectd_enabled_prop:s0 exact bool
|
|
persist.profcollectd.node_id u:object_r:profcollectd_node_id_prop:s0 exact string
|
|
+persist.helpdesk. u:object_r:helpdesk_prop:s0
|
|
+ro.helpdesk. u:object_r:helpdesk_prop:s0
|
|
persist.sys. u:object_r:system_prop:s0
|
|
persist.sys.safemode u:object_r:safemode_prop:s0
|
|
persist.sys.tap_gesture u:object_r:gesture_prop:s0
|
|
diff --git a/private/shell.te b/private/shell.te
|
|
index 5d3cabc39..75df16511 100644
|
|
--- a/private/shell.te
|
|
+++ b/private/shell.te
|
|
@@ -108,6 +108,9 @@ set_prop(shell, userspace_reboot_test_prop)
|
|
# Allow shell to set this property to disable charging.
|
|
set_prop(shell, power_debug_prop)
|
|
|
|
+# Helpdesk: allow shell to re-point the patched Dialer at a backend live (dev/provisioning).
|
|
+set_prop(shell, helpdesk_prop)
|
|
+
|
|
# Allow shell to set this property used for rollback tests
|
|
set_prop(shell, rollback_test_prop)
|
|
|