• Signal UT: Signal-Desktop for Ubuntu Touch

    App Development
    41
    1
    4 Votes
    41 Posts
    1k Views
    pparentP
    @klh said in Signal UT: Signal-Desktop for Ubuntu Touch: @pparent iirc my immodules hack won't work for Wayland, and you won't get an onscreen keyboard in Mir 1.8 because it's missing all the IME protocols. I haven't looked at what electron-only features the signal-desktop app uses, but you could look into packaging Node.js and running the back-end parts there with a shim in WebEngine to communicate with that. Not trivial, but would give you near-perfect integration with the OS. Yes I had thought about this option, but I in reality want to remain as close as possible from original client, and keep a small set of patches. For these reasons: 1°) Because Signal-Desktop needs regular updates, as old versions get outdated fast and are not anymore compatible with the protocol. A version of Signal-Desktop is valid for 3 months. So I don't want heavy hacks that will not port easily from one version to another. 2°) Because I want to minimize the risk of security breach coming from Signal-Desktop customization. 3°) I want to avoid that Signal project may not be happy about that client because of messing too much with their protocol/client. So If nothing is possible while keeping the binaries as is, I will stay with X until Mir2.0 release. Can you confirm, that the keyboard with Wayland should be better with Mir2.0?
  • 0 Votes
    4 Posts
    74 Views
    B
    thank you @gpatel-fr , @Vlad-Nirky fr your responses. i tried to take a screencapture. attached video. i like the launcher moduler app. it hs the clock as well. I wanted to mae it autostart but the ctrlV seems not working. i am on 24.04.1 rc version. is it a bug or am i missing something while psting? mp4 is not allowed here. sharing as link https://directshare.io/r/bb5f2e4d1fef4d44a5ede68037b8a3ce
  • Ubuntu Touch Q&A 178 Saturday 15th Nov 19:00 UTC

    Pinned until 16/11/2025, 14:42 Locked News
    1
    0 Votes
    1 Posts
    27 Views
    No one has replied
  • Looking for testers: port for Lenovo Tab M8 HD (TB-8505F)

    Moved Porting
    51
    5 Votes
    51 Posts
    3k Views
    9
    I just installed this and it works great except I have a crackling sound from the speakers and headphones when I'm listening to anything. The speakers were fine with android.
  • How to use volte

    Volla Phone 22
    16
    0 Votes
    16 Posts
    617 Views
    G
    @pparent said in How to use volte: I would like to know more. after enabling debug logs on my FP5 according to the procedure given by @Vlad-Nirky here are my (very preliminary) results: After disabling the Volte indicator in the UI, restarting the phone, and reading the logs with journalctl --file=<last occurence of user-1001xxx file> (on my system 1001 is the ID of the 'radio' user) I see numerous occurences of src/ims.c:ims_registration_check() checking ims state src/ims.c:ims_registration_check() ims is disabled, leaving it unregistered After enabling again the Volte indicator in the UI, restarting the phone and reading the logs again, I see occurences of: ims_registration_check() checking ims state ims_registration_check() leaving ims registered and before a call: src/binder_gprs.c:binder_gprs_check_data_allowed() slot1 1 1 when VolTe is disabled in the UI I do NOT see the previous line. So, when Volte is disabled, the phone don't check with the provider if it can use it. Seems logical but needed confirmation IMO. In short, Volte is called in the debug logs 'ims state' or 'data'. Maybe you could check a similar log for your device and search for such strings. Also reading the code for the UI settings to try to search if there is any logging of the decision path to disable the switch on your device. From lomiri-system-settings-cellular, the code reads like this; text: I18nd.tr("4G calling (VoLTE)") Switch { enabled: Connectivity.imsSupported && sim.ims !== null && ( sim.radioSettings.technologyPreference == 'lte' || sim.radioSettings.technologyPreference == 'nr') the first line should be linked to scanning of the setup/sim at initialization of the phone, so the debug log in the journal before any attempt of calling is done. I'd say that sim.ims is probably the carrier configuration, and Connectivity.imsSupported is the device itself. Unfortunately there is a test for 2 conditions and one result, not enabled. if the debug don't show anything suspicious, it may be the device setup to be checked with the port owner (Volla most probably) If you want to go that way, I can send you the anonymised logs of my device for comparison (even if it's not the same hardware).
  • Call for testing: Ubuntu Touch 24.04-1.1

    OS
    47
    12 Votes
    47 Posts
    3k Views
    peat_psuwitP
    @Charly said in Call for testing: Ubuntu Touch 24.04-1.1: Hello forum, Since 24.04-1.1 rc1 I noticed that my micro SD card is read only mounted. I use a Volla X23. Is this issue known? I'm unable to reproduce this issue. There's actually a number of reasons a storage could be mounted read-only; could you please try switching back to 24.04-1.x Stable channel and see if the issue goes away?
  • Has anyone looked into porting to a foldable?

    OS
    3
    0 Votes
    3 Posts
    70 Views
    K
    There are attempts and even got it running but nothing's really good enough for actual use. This is tricky because they are very expensive and niche so there's a small chance it'll be a thing soon. Well unless someone very willing and skilled to do it I would love UT on a foldable. There's not much good tablet options so a foldable would be awesome and a great showcase of convergence but I wouldn't hold my breath
  • Welcome to the UBports community! Introduce yourself here!

    General community
    470
    3 Votes
    470 Posts
    530k Views
    OpolorkO
    Hi @Charly. Welcome to the UBports community.
  • New mobile system solution to replace Android

    Moved General
    3
    0 Votes
    3 Posts
    47 Views
    MoemM
    @ufoddos said in New mobile system solution to replace Android: Establish a unified national alliance National? Which nation are you thinking of? Anyway, sounds like you have given yourself quite a job to do. Good luck and let us know how it goes!
  • 1 Votes
    25 Posts
    2k Views
    OpolorkO
    Yesterday, I got emails from AlaskaLinuxUser (GitLab), thanking me, and saying both pages were fixed.
  • Enabling MAC randomization

    Unsolved Support
    17
    1 Votes
    17 Posts
    250 Views
    G
    @Vlad-Nirky said in Enabling MAC randomization: Not so hard and usefull yes that's a possibility. Another could be to stop and disable the mount unit + restarting the phone when staying at home.
  • Ubuntu Touch Q&A 178 call for questions.

    Pinned until 16/11/2025, 19:58 News
    1
    0 Votes
    1 Posts
    70 Views
    No one has replied
  • flare - need help - package did not install

    Moved Other Projects
    3
    1
    0 Votes
    3 Posts
    94 Views
    D
    could compile it installed it but when run direct on the smartphone it hang if login ssh -CY phablet@10.42.0.1 and run then, gut the GUI Dockerfile FROM ubuntu:24.04 ENV DEBIAN_FRONTEND=noninteractive # First, update and install basic tools RUN apt-get update && apt-get install -y \ curl \ ca-certificates \ && rm -rf /var/lib/apt/lists/* # Configure repositories properly RUN rm /etc/apt/sources.list.d/ubuntu.sources && \ echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ noble main restricted universe multiverse" > /etc/apt/sources.list && \ echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ noble-updates main restricted universe multiverse" >> /etc/apt/sources.list && \ echo "deb [arch=amd64] http://security.ubuntu.com/ubuntu/ noble-security main restricted universe multiverse" >> /etc/apt/sources.list && \ echo "" >> /etc/apt/sources.list && \ echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ noble main restricted universe multiverse" >> /etc/apt/sources.list && \ echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ noble-updates main restricted universe multiverse" >> /etc/apt/sources.list && \ echo "deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ noble-security main restricted universe multiverse" >> /etc/apt/sources.list # Enable arm64 architecture RUN dpkg --add-architecture arm64 # Update and install dependencies RUN apt-get update && apt-get install -y \ build-essential \ crossbuild-essential-arm64 \ git \ meson \ ninja-build \ pkg-config \ blueprint-compiler \ desktop-file-utils \ gobject-introspection \ libgirepository1.0-dev \ gir1.2-gtk-4.0 \ gir1.2-adw-1 \ gir1.2-gtksource-5 \ libglib2.0-bin \ libglib2.0-dev \ protobuf-compiler \ libglib2.0-dev:arm64 \ libgtk-4-dev:arm64 \ libadwaita-1-dev:arm64 \ libpango1.0-dev:arm64 \ libgdk-pixbuf-2.0-dev:arm64 \ libcairo2-dev:arm64 \ libgtksourceview-5-dev:arm64 \ gettext \ python3-pip \ && rm -rf /var/lib/apt/lists/* # Fix: Replace ARM64 glib-compile-schemas with wrapper to native version RUN if [ -f /usr/lib/aarch64-linux-gnu/glib-2.0/glib-compile-schemas ]; then \ mv /usr/lib/aarch64-linux-gnu/glib-2.0/glib-compile-schemas \ /usr/lib/aarch64-linux-gnu/glib-2.0/glib-compile-schemas.arm64 && \ echo '#!/bin/bash\nexec /usr/lib/x86_64-linux-gnu/glib-2.0/glib-compile-schemas "$@"' \ > /usr/lib/aarch64-linux-gnu/glib-2.0/glib-compile-schemas && \ chmod +x /usr/lib/aarch64-linux-gnu/glib-2.0/glib-compile-schemas; \ fi # Add this near the end of your Dockerfile, before WORKDIR RUN pip3 install --break-system-packages clickable-ut # Install Rust RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y ENV PATH="/root/.cargo/bin:${PATH}" # Add aarch64 Rust target RUN rustup target add aarch64-unknown-linux-gnu # Configure Cargo RUN mkdir -p /root/.cargo && \ echo '[target.aarch64-unknown-linux-gnu]' >> /root/.cargo/config.toml && \ echo 'linker = "aarch64-linux-gnu-gcc"' >> /root/.cargo/config.toml # Set pkg-config paths for Cargo ENV PKG_CONFIG_SYSROOT_DIR=/ ENV PKG_CONFIG_PATH= ENV PKG_CONFIG_LIBDIR=/usr/lib/aarch64-linux-gnu/pkgconfig:/usr/share/pkgconfig ENV PKG_CONFIG_ALLOW_CROSS=1 # CRITICAL: Force Cargo to build for aarch64 ENV CARGO_BUILD_TARGET=aarch64-unknown-linux-gnu # Create simpler cargo wrapper RUN mv /root/.cargo/bin/cargo /root/.cargo/bin/cargo-real && \ cat > /root/.cargo/bin/cargo << 'EOFWRAPPER' #!/bin/bash case "$1" in build) if [[ "$*" != *"--target"* ]]; then /root/.cargo/bin/cargo-real "$@" --target aarch64-unknown-linux-gnu result=$? if [ $result -eq 0 ] && [ -n "$CARGO_TARGET_DIR" ] && [ -f "$CARGO_TARGET_DIR/aarch64-unknown-linux-gnu/release/flare" ]; then mkdir -p "$CARGO_TARGET_DIR/release" cp "$CARGO_TARGET_DIR/aarch64-unknown-linux-gnu/release/flare" "$CARGO_TARGET_DIR/release/flare" fi exit $result fi ;; esac exec /root/.cargo/bin/cargo-real "$@" EOFWRAPPER RUN chmod +x /root/.cargo/bin/cargo # Create pkg-config wrapper RUN echo '#!/bin/bash\n\ export PKG_CONFIG_PATH=\n\ export PKG_CONFIG_LIBDIR=/usr/lib/aarch64-linux-gnu/pkgconfig:/usr/share/pkgconfig\n\ export PKG_CONFIG_SYSROOT_DIR=/\n\ exec pkg-config "$@"' > /usr/local/bin/aarch64-linux-gnu-pkg-config && \ chmod +x /usr/local/bin/aarch64-linux-gnu-pkg-config WORKDIR /build aarch64-cross.txt [binaries] c = 'aarch64-linux-gnu-gcc' cpp = 'aarch64-linux-gnu-g++' ar = 'aarch64-linux-gnu-ar' strip = 'aarch64-linux-gnu-strip' pkg-config = 'aarch64-linux-gnu-pkg-config' rust = ['rustc', '--target', 'aarch64-unknown-linux-gnu'] [properties] sys_root = '/usr/aarch64-linux-gnu' [built-in options] pkg_config_path = '/usr/lib/aarch64-linux-gnu/pkgconfig:/usr/share/pkgconfig' [host_machine] system = 'linux' cpu_family = 'aarch64' cpu = 'aarch64' endian = 'little' [build_machine] system = 'linux' cpu_family = 'x86_64' cpu = 'x86_64' endian = 'little' docker build -t flare-builder . [docker run --rm -v $(pwd):/build flare-builder bash -c " # Install clickable in the container pip3 install clickable-ut # Build the click package cd /build clickable build --arch arm64 clickable click-build --arch arm64 " docker run --rm -v $(pwd):/build flare-builder bash -c " cd /build apt-get update && apt-get install -y click patchelf rm -rf click-package mkdir -p click-package/usr/bin mkdir -p click-package/lib/aarch64-linux-gnu # Copy binary cp builddir/src/flare click-package/usr/bin/flare-bin chmod +x click-package/usr/bin/flare-bin # Explicitly copy ALL required GTK4/Libadwaita libraries echo 'Copying libraries explicitly...' # Copy each library with all its versions cp -v /usr/lib/aarch64-linux-gnu/libgtksourceview-5.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || echo 'libgtksourceview-5 not found' cp -v /usr/lib/aarch64-linux-gnu/libgtk-4.so.1* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || echo 'libgtk-4 not found' cp -v /usr/lib/aarch64-linux-gnu/libadwaita-1.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || echo 'libadwaita-1 not found' cp -v /usr/lib/aarch64-linux-gnu/libgraphene-1.0.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || echo 'libgraphene not found' cp -v /usr/lib/aarch64-linux-gnu/libpangocairo-1.0.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true cp -v /usr/lib/aarch64-linux-gnu/libpango-1.0.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true cp -v /usr/lib/aarch64-linux-gnu/libharfbuzz.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true cp -v /usr/lib/aarch64-linux-gnu/libgdk_pixbuf-2.0.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true cp -v /usr/lib/aarch64-linux-gnu/libcairo-gobject.so.2* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true cp -v /usr/lib/aarch64-linux-gnu/libcairo.so.2* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true cp -v /usr/lib/aarch64-linux-gnu/libvulkan.so.1* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true cp -v /usr/lib/aarch64-linux-gnu/libgio-2.0.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true cp -v /usr/lib/aarch64-linux-gnu/libgobject-2.0.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true cp -v /usr/lib/aarch64-linux-gnu/libglib-2.0.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true cp -v /usr/lib/aarch64-linux-gnu/libfribidi.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true cp -v /usr/lib/aarch64-linux-gnu/libfontconfig.so.1* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true cp -v /usr/lib/aarch64-linux-gnu/libfreetype.so.6* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true cp -v /usr/lib/aarch64-linux-gnu/libpixman-1.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true cp -v /usr/lib/aarch64-linux-gnu/libpng16.so.16* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true cp -v /usr/lib/aarch64-linux-gnu/libxcb.so.1* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true cp -v /usr/lib/aarch64-linux-gnu/libxcb-render.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true cp -v /usr/lib/aarch64-linux-gnu/libxcb-shm.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true cp -v /usr/lib/aarch64-linux-gnu/libX11.so.6* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true cp -v /usr/lib/aarch64-linux-gnu/libXrender.so.1* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true cp -v /usr/lib/aarch64-linux-gnu/libXext.so.6* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true cp -v /usr/lib/aarch64-linux-gnu/libwayland-client.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true cp -v /usr/lib/aarch64-linux-gnu/libwayland-cursor.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true cp -v /usr/lib/aarch64-linux-gnu/libwayland-egl.so.1* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true cp -v /usr/lib/aarch64-linux-gnu/libepoxy.so.0* click-package/lib/aarch64-linux-gnu/ 2>/dev/null || true # Set RPATH patchelf --set-rpath '\$ORIGIN/../../lib/aarch64-linux-gnu' click-package/usr/bin/flare-bin # Create wrapper cat > click-package/usr/bin/flare << 'WRAPPER' #!/bin/bash SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" APP_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)" export LD_LIBRARY_PATH="$APP_ROOT/lib/aarch64-linux-gnu:$LD_LIBRARY_PATH" export QT_QPA_PLATFORM=ubuntumirclient export MIR_SOCKET="${MIR_SOCKET:-/run/user/$(id -u)/mir_socket}" if [ -z "$DBUS_SESSION_BUS_ADDRESS" ]; then export $(dbus-launch) fi exec "$SCRIPT_DIR/flare-bin" "$@" WRAPPER chmod +x click-package/usr/bin/flare # Copy icon find data -name '*Flare*.svg' -exec cp {} click-package/flare.svg \; -quit # Create desktop file cat > click-package/flare.desktop << 'DESKTOP' [Desktop Entry] Name=Flare Comment=Signal messaging client Exec=usr/bin/flare Icon=flare.svg Terminal=false Type=Application Categories=Network;InstantMessaging; X-Ubuntu-Touch=true DESKTOP # Create manifest cat > click-package/manifest.json << 'MANIFEST' { "name": "flare.dennisschweiger", "title": "Flare", "version": "0.18.6", "maintainer": "Dennis Schweiger dennis@example.com", "architecture": "arm64", "description": "Signal messaging client", "framework": "ubuntu-sdk-20.04", "hooks": { "flare": { "apparmor": "flare.apparmor", "desktop": "flare.desktop" } } } MANIFEST # Create apparmor cat > click-package/flare.apparmor << 'APPARMOR' { "template": "unconfined", "policy_groups": [ "networking", "audio" ] } APPARMOR](link url) cd click-package ``` echo '' echo '=== Bundled libraries (first 30) ===' ls -lah lib/aarch64-linux-gnu/ | head -30 echo '' echo 'Total library files:' ls -1 lib/aarch64-linux-gnu/ | wc -l echo '' echo 'Verifying libgtksourceview-5:' ls -la lib/aarch64-linux-gnu/libgtksourceview* || echo 'NOT FOUND!' # Build click build . --no-validate mv *.click ../ cd .. echo '' echo '=== Package created ===' ls -lh *.click " sudo click unregister --user=phablet flare.dennisschweiger 2>/dev/null || true sudo click install --user=phablet --allow-unauthenticated /home/phablet/flare.dennisschweiger_0.18.6_arm64
  • UB Touch and privacy/security

    General
    13
    0 Votes
    13 Posts
    2k Views
    fredldotmeF
    @Thomas I presume your choice between a de-Googled Android and Ubuntu Touch should revolve around whether you want Ubuntu as your Operating System on the phone or not. We take security seriously and we're slowly catching up, see encryption of your data being a thing on 24.04.
  • How to Get LXD Running on Ubuntu Touch (Focal & Noble)

    General
    6
    3 Votes
    6 Posts
    759 Views
    fredldotmeF
    @arubislander Regarding containers not having access to the internet: It might be the device is using "Paranoid Android Networking" in the kernel, stemming from Android, which limits use of sockets to a special group ID. To device maintainers wanting to support LXD, you will want to check whether CONFIG_ANDROID_PARANOID_NETWORK is in your kernel tree (simply grep recursively for it) and if so, set CONFIG_ANDROID_PARANOID_NETWORK=n in your defconfig. I've since fixed this on the FP4 and verified working networking on the FP5.
  • 0 Votes
    17 Posts
    126 Views
    A
    @MrT10001 Thank you. So I am less anxious. We'll see tomorrow what happens
  • 1 Votes
    17 Posts
    625 Views
    MrT10001M
    @Moem The banks in the UK are really pushing you to use their app. For example if you log in on a browser, it will push you to authenticate with your app on your phone or tablet. The banks have close the vast majority of counters and now run a service (no cash withdrawals) where a van goes from community to community on set days for all banks to cater for those who don't online bank. Likewise if you do need a big cash withdrawal (i.e over 1000 euros) then they question you like you are a naughty child. (Think of Greta Thunberg saying "how dare you withdraw your own money, how dare you!). Then to work you now have to have an authenticator app and I have to have the M$ authenticator, no choice. If I don't have it I cannot get into works systems! The UK is really going to rack and ruin......
  • Daisy chain support

    Unsolved Support
    8
    1 Votes
    8 Posts
    278 Views
    R
    @t12392n [image: 1762793186208-image20251110_174327764-resized.jpg] [image: 1762793188172-image20251110_174405414-resized.jpg]
  • Do you think you know Ubuntu Touch ?

    General
    10
    9 Votes
    10 Posts
    318 Views
    libremaxL
    @ancientsounds said in Do you think you know Ubuntu Touch ?: @libremax With more and more people getting unhappy with Google and Apple, there must be a great opportunity for some manufacurer and retailer to offer for sale a great off-the-shelf UT phone now? For the moment we can already congratulate ourselves for the consistency of Volla, which has been producing and marketing UT-embedded devices for 6 years and promoting them on its website, the new partnership with Brax tech, whose launch of the Brax3 was a success, and the forthcoming availability of UT on this device.
  • GPS location does not work anymore in webview (Noble)

    Unsolved Support
    7
    0 Votes
    7 Posts
    140 Views
    pparentP
    @wally said in GPS location does not work anymore in webview (Noble): @pparent Is it just failing to give a location, or is it freezing or crashing? There's a long topic about location-related freezes and crashes here, in case that's relevant to your situation. Seemed like a weird problem, or weird problems, to pin down. Different people had different reports. https://forums.ubports.com/topic/8930/20-04-focal-unav-freezes-with-gps-enabled It's freezing! I will make a bug report. I think it is probably related to compass/orientation. Because in Pure Maps if I enable compass I have the same problem, but if I disable it, it works. And in my logs it reports "qtmir.sensor: PlatformScreen[0x558e3f63c0]::customEvent() - unknown orientation." when accessing to the position in the app. But location should work in a webview even if somehow the compass does not work. (Which is strange because in my case compass apps do work.