Skip to content

Instantly share code, notes, and snippets.

View fredldotme's full-sized avatar

Alfred E. Neumayer fredldotme

View GitHub Profile
@fredldotme
fredldotme / encrypt_apps.sh
Created November 20, 2025 07:01
Encrypt Ubuntu Touch apps
#!/bin/bash
set -e
ORIG_DIR=/userdata/system-data/opt/click.ubuntu.com
BAK_DIR=${ORIG_DIR}-bak
TMP_DIR=${ORIG_DIR}-new
function error_out {
echo "$1"
@fredldotme
fredldotme / docker.config
Created November 8, 2025 20:46
Docker kernel configs
# Probably most of the NETFILTER configs are not needed,
# but list them just in case
CONFIG_POSIX_MQUEUE=y
CONFIG_NETFILTER=y
CONFIG_NETFILTER_ADVANCED=y
CONFIG_BRIDGE_NETFILTER=y
CONFIG_NETFILTER_INGRESS=y
CONFIG_NETFILTER_EGRESS=y
CONFIG_NETFILTER_SKIP_EGRESS=y
@fredldotme
fredldotme / chroot-into-system
Last active November 21, 2025 09:14
Recover encrypted /home from the device's recovery
#!/system/bin/sh
# To use this, do the following:
# 1) With your device in recovery mode, enter "Advanced" and select "Mount/unmount system"
# 2) Push this script to the device: adb push chroot-into-system /tmp/
# 3) Open a shell: adb shell
# 4) Start a chroot: sh /tmp/chroot-into-system
# 5) From here on you can unlock your encrypted home directory: fscrypt unlock /home/phablet
# 6) Enter your PIN or password and hit enter
# 7) Done!
From 775bad6fad033edfdc69c6e816a8a7c4d8ffbcf6 Mon Sep 17 00:00:00 2001
From: Alfred Neumayer <[email protected]>
Date: Tue, 12 Dec 2023 10:37:03 +0100
Subject: [PATCH] libsofia-sip-ua: Reuse port on all transport types
Enable reuse of previously allocated ports before binding sockets.
---
libsofia-sip-ua/su/su.c | 2 +-
libsofia-sip-ua/tport/tport_type_tls.c | 5 +++++
libsofia-sip-ua/tport/tport_type_udp.c | 4 ++++
@fredldotme
fredldotme / override.conf
Created October 30, 2023 07:55
Docker inside LXD on Ubuntu Touch (JingPad)
# /etc/systemd/system/docker.service.d/override.conf
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --iptables=false -H fd:// --containerd=/run/containerd/containerd.sock
@fredldotme
fredldotme / getit.sh
Last active July 14, 2023 20:49
Snaps on Ubuntu Touch
# Make ubports-qa succeed
sudo umount /usr/libexec/lxc-android-config/device-hacks
sudo umount /etc/profile.d
sudo umount /usr/lib/systemd/user
sudo umount /lib/udev/rules.d/70-android.rules
sudo umount /lib/udev/rules.d/99-android.rules
sudo mkdir /root/snap
# Enable writable paths
sudo ubports-qa install focal_-_snapd
@fredldotme
fredldotme / xwayland-glamor-hybris.c
Created April 1, 2023 18:39
color correction WIP
static GLint
xwl_eglstream_compile_glsl_prog(GLenum type, const char *source)
{
GLint ok;
GLint prog;
prog = glCreateShader(type);
glShaderSource(prog, 1, (const GLchar **) &source, NULL);
glCompileShader(prog);
glGetShaderiv(prog, GL_COMPILE_STATUS, &ok);
*** snapd-2.57.5+20.04ubuntu0.1/cmd/snap-confine/mount-support.c Mon Nov 28 04:54:57 2022
--- snapd.patched/cmd/snap-confine/mount-support.c Tue Dec 13 20:50:41 2022
***************
*** 585,590 ****
--- 585,599 ----
// and it has a large duplicated view of many mount points. Note that this
// is only applicable to ubuntu-core systems.
sc_detach_views_of_writable(config->distro, config->normal_mode);
+
+ // On Android-based hybris/Halium devices the driver stack is
@fredldotme
fredldotme / qtwebengine-hwaccel-omx.diff
Created September 28, 2022 16:10
QtWebEngine + OMX video decoding on libhybris
diff --git a/qtwebengine-chromium/chromium/content/gpu/BUILD.gn b/qtwebengine-chromium/chromium/content/gpu/BUILD.gn
index 872ddb841..2c2c1e8d2 100644
--- a/qtwebengine-chromium/chromium/content/gpu/BUILD.gn
+++ b/qtwebengine-chromium/chromium/content/gpu/BUILD.gn
@@ -92,7 +92,8 @@ target(link_target_type, "gpu_sources") {
"//ui/gl",
"//ui/gl/init",
"//ui/latency/ipc",
- ]
+ "//components/services/quarantine/public/mojom",
1. The texture target needs to be GLES20.GL_TEXTURE_EXTERNAL_OES instead of GL_TEXTURE_2D, e.g. in the glBindTexture calls and glTexParameteri calls.
2. In the fragment shader define a requirement to use the extension:
#extension GL_OES_EGL_image_external : require
3. For the texture sampler used in the fragment shader, use samplerExternalOES instead of sampler2D.
Everything below here is all in the C code, no more Java.
4. In the C code, use glEGLImageTargetTexture2DOES(GL_TEXTURE_EXTERNAL_OES, eglImage) to specify where the data is, instead of using glTexImage2D family of functions.