Subcategories

  • This section is specifically useful for new contributors on the project

    7 Topics
    1 Posts
    DiogoD
    This Category is for those starting to contribute for the UBports Project and Community. By contributing, we mean doing things like: coding quality assurance (testing, bug reporting and validation, etc...) translations app development and maintenance writing and validating technical documentation and user manuals UBports social media and marqueting etc... If you want to contribute in these ways or others and have questions about it, like how to get started, where can you find information, please leave your questions in this category and we will try to answer them the best we can.
  • Discuss and solve problems with other users

    90 Topics
    645 Posts
    developerbaymanD
    @bearbobs sorry for the late reply its been busy with work...did you have to host the emulationstation?....because not sure how to host from within a clickable.....Iv seen the project before but have not really done anything with it....if it runs totally client side its do able....but if it needs hosting I don't think it can be done....the nes I'm working on is a heavily modded JavaScript emulator runs totally client side i added touch support fixed up the audio and added a lot of mapper support.....one big issue is the webview out of the box is....well lacking...if you load mario you will see black squares around the clouds and other sprites...not the emulator but the webview....
  • 133 Topics
    934 Posts
    developerbaymanD
    @captainfunk try this #!/bin/bash # # Usage: # To install and set up: ./waydroid_shared_folder.sh --install # To perform mount only: ./waydroid_shared_folder.sh --mount (used by cron) # To perform chown only: ./waydroid_shared_folder.sh --chown (used by cron) # To uninstall: ./waydroid_shared_folder.sh --uninstall # To display help: ./waydroid_shared_folder.sh --help # # --- Configuration --- # Define the paths for the shared folders. # ~/shared is the folder on your Ubuntu Touch host that you will use. SHARED_DIR_HOST="$HOME/shared" # ~/.local/share/waydroid/data/media/0/shared is the corresponding folder inside Waydroid. SHARED_DIR_WAYDROID="$HOME/.local/share/waydroid/data/media/0/shared" # The primary user on Ubuntu Touch. USER_PHABLET="phablet" # The name of this script, used for cron job identification. SCRIPT_NAME=$(basename "$0") # The absolute path to this script, essential for cron to execute it correctly. SCRIPT_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" &> /dev/null && pwd)/$SCRIPT_NAME" # --- Functions --- # Function for logging messages to stdout with a timestamp. log() { echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" } # Function to create the necessary shared directories if they don't exist. create_directories() { log "Creating shared directories..." # Create the host shared directory. mkdir -p "$SHARED_DIR_HOST" # Create the Waydroid internal shared directory path. mkdir -p "$SHARED_DIR_WAYDROID" if [ $? -eq 0 ]; then log "Directories created successfully." else log "Error creating directories. Please check permissions or disk space. Exiting." exit 1 fi } # Function to perform the bind mount operation. perform_bind_mount() { log "Attempting to bind mount '$SHARED_DIR_HOST' to '$SHARED_DIR_WAYDROID'..." # Check if the Waydroid shared folder is already mounted to avoid errors. if mountpoint -q "$SHARED_DIR_WAYDROID"; then log "Folder '$SHARED_DIR_WAYDROID' is already mounted. Skipping bind mount." else # Use sudo to perform the bind mount, linking the host folder to the Waydroid folder. sudo mount --bind "$SHARED_DIR_HOST" "$SHARED_DIR_WAYDROID" if [ $? -eq 0 ]; then log "Bind mount successful." # Immediately set initial permissions after a successful mount. set_folder_permissions else log "Error: Bind mount failed. This could be due to incorrect paths, Waydroid not running, or insufficient sudo permissions." log "Ensure Waydroid is running and '$SHARED_DIR_WAYDROID' exists inside its 'data/media/0' structure." exit 1 fi fi } # Function to unmount the shared folder. unmount_folder() { log "Attempting to unmount '$SHARED_DIR_WAYDROID'..." # Check if the folder is currently mounted before attempting to unmount. if mountpoint -q "$SHARED_DIR_WAYDROID"; then # Use sudo to unmount the folder. sudo umount "$SHARED_DIR_WAYDROID" if [ $? -eq 0 ]; then log "Unmount successful." else log "Error unmounting folder. This may happen if files inside are in use." log "You might need to manually unmount or reboot if it persists." exit 1 fi else log "Folder '$SHARED_DIR_WAYDROID' is not mounted. Skipping unmount." fi } # Function to set the ownership of the shared folder and its contents. set_folder_permissions() { log "Setting permissions for '$SHARED_DIR_WAYDROID' to '$USER_PHABLET:$USER_PHABLET'..." # Use sudo and the -R (recursive) flag to ensure all files and subdirectories # within the mounted shared folder are owned by the 'phablet' user. # This directly addresses the issue of Waydroid changing ownership. sudo chown -R "$USER_PHABLET":"$USER_PHABLET" "$SHARED_DIR_WAYDROID" if [ $? -eq 0 ]; then log "Permissions set successfully." else log "Error setting permissions. Check sudo permissions or ensure the path '$SHARED_DIR_WAYDROID' is valid." exit 1 fi } # Function to add cron jobs for persistence and continuous permission management. add_cron_jobs() { log "Adding cron jobs for persistence and continuous permission management..." # Get current crontab, add new entries, sort, remove duplicates, then set new crontab. # @reboot: Executes the script with '--mount' option every time the device reboots. # * * * * *: Executes the script with '--chown' option every minute to correct permissions. (crontab -l 2>/dev/null; \ echo "@reboot /bin/bash \"$SCRIPT_PATH\" --mount"; \ echo "* * * * * /bin/bash \"$SCRIPT_PATH\" --chown" \ ) | sort | uniq | crontab - if [ $? -eq 0 ]; then log "Cron jobs added successfully." log "They will run from this script's current location: $SCRIPT_PATH" log "IMPORTANT: Do NOT move or rename this script after installation, or the cron jobs will fail." log "You can verify the cron jobs by running: crontab -l" else log "Error adding cron jobs. This could be a cron service issue." exit 1 fi } # Function to remove cron jobs added by this script. remove_cron_jobs() { log "Removing cron jobs related to this script..." # List current cron jobs, filter out lines containing this script's path, and set the new crontab. crontab -l 2>/dev/null | grep -v "$SCRIPT_PATH" | crontab - if [ $? -eq 0 ]; then log "Cron jobs removed successfully. You can verify by running: crontab -l" else log "Error removing cron jobs. You may need to manually edit your crontab (crontab -e)." exit 1 fi } # Function to display the help message. display_help() { echo "Usage: $SCRIPT_NAME [OPTION]" echo "" echo "This script automates setting up and managing a shared folder between Ubuntu Touch and Waydroid." echo "" echo "Options:" echo " --install Performs initial setup: creates directories, mounts the folder," echo " sets initial permissions, and adds cron jobs for persistence and" echo " continuous permission handling. Run this command once to set up." echo "" echo " --mount Performs only the bind mount operation and sets initial permissions." echo " This option is primarily used by the '@reboot' cron job for persistence." echo "" echo " --chown Recursively sets permissions for the shared folder and its contents" echo " to 'phablet:phablet'. This option is used by the periodic cron job" echo " to automatically correct permissions changed by Waydroid." echo "" echo " --uninstall Removes the cron jobs added by this script and unmounts the shared folder." echo " This cleans up the setup." echo "" echo " --help Display this help message." echo "" echo "Important Notes:" echo " - This script assumes you are running it as the 'phablet' user on Ubuntu Touch." echo " - It relies on 'sudo' for mount and chown commands. The 'phablet' user typically has" echo " passwordless sudo access configured by default on Ubuntu Touch." echo " - After running '--install', a reboot is recommended to ensure the @reboot cron job fires." echo " - Do not move or rename this script after installation, as the cron jobs rely on its path." echo " - While '/etc/fstab' is a common Linux method for persistence, it's generally not recommended" echo " for user-level modifications on Ubuntu Touch due to its read-only root filesystem and OTA updates." echo " Using user-specific cron jobs provides a safer and more robust solution here." } # --- Main Logic --- # Check if the script is being run as root. It should be run as the regular user (phablet). if [[ $EUID -eq 0 ]]; then log "Error: This script should NOT be run directly with 'sudo'." log "Please run it as the '$USER_PHABLET' user (e.g., just './$SCRIPT_NAME --install')." log "The script will use 'sudo' internally where necessary." exit 1 fi # Check for essential commands required by the script. if ! command -v crontab &> /dev/null; then log "Error: 'crontab' command not found. Please ensure cron is installed and available." exit 1 fi if ! command -v mountpoint &> /dev/null; then log "Error: 'mountpoint' command not found. Please ensure it's installed (usually part of 'util-linux')." exit 1 fi # Process command-line arguments. case "$1" in --install) log "Initiating installation process..." create_directories # Create the required host and Waydroid directories. perform_bind_mount # Perform the initial bind mount. add_cron_jobs # Set up cron jobs for persistence and auto-chown. log "Installation complete. Please reboot your Ubuntu Touch device for all changes to take full effect." log "The shared folder will now be persistent across reboots, and permissions will be automatically corrected." ;; --mount) log "Executing mount operation (likely from @reboot cron job)..." create_directories # Ensure directories exist (in case they were deleted). perform_bind_mount # Perform the bind mount. ;; --chown) log "Executing chown operation (likely from periodic cron job)..." # Only attempt chown if the target directory exists and is mounted. if [ -d "$SHARED_DIR_WAYDROID" ] && mountpoint -q "$SHARED_DIR_WAYDROID"; then set_folder_permissions # Correct the permissions recursively. else log "Shared Waydroid directory '$SHARED_DIR_WAYDROID' not found or not mounted. Skipping chown for now." log "This might happen if Waydroid is not running or if the mount failed." fi ;; --uninstall) log "Initiating uninstallation process..." remove_cron_jobs # Remove the cron jobs. unmount_folder # Unmount the shared folder. log "Uninstallation complete. You may manually remove the '$SHARED_DIR_HOST' directory if no longer needed." ;; --help) display_help # Show the help message. ;; *) log "Invalid option: '$1'" display_help exit 1 ;; esac log "Script execution finished."
  • Can't create account on Dekko 2

    gmail nexus 5 dekko 2
    13
    4
    0 Votes
    13 Posts
    2k Views
    LakotaubpL
    @mohsen Glad your sorted
  • Textsecure registrations problem (Signal)

    Moved
    5
    0 Votes
    5 Posts
    699 Views
    R
    Signal now works. I did nothing, probably changes were made on the server Nexus 5 OTA-7 (16.04) Signal 0.4.1
  • This topic is deleted!

    2
    0 Votes
    2 Posts
    9 Views
  • Updated modem on Meizu Pro 5.

    17
    2 Votes
    17 Posts
    2k Views
    S
    @Flohack Not by fastboot, by the method mentioned in the first post, there is link to that post. But, I also flashed modem couple of times with flashable zip that contained a new/different modem firmware and by checking the modem version after that, it was changed. So, yeah, different ways of doing it.
  • Ringtone rings from bluetooth earphones and not from device

    8
    0 Votes
    8 Posts
    988 Views
    dobeyD
    @apost02 I think right now, in 16.04, bluetooth headsets only work for streaming media. The HFP/HSP mode is not supported by the version of pulseaudio in 16.04 with the version of bluez in 16.04. It seems to only support A2DP streaming. I don't think there is any way to work around these issues currently. Hopefully we can get newer versions of both included at some point, but it's a fair amount of work. Perhaps your issue may be considered a separate bug to this. Please open an issue on https://github.com/ubports/ubuntu-touch/issues if one does not already exist for your problem.
  • Reinstall Android

    6
    0 Votes
    6 Posts
    644 Views
    dobeyD
    @ann_droid LineageOS instructions are "boot into fastboot, ensure the bootloader is unlocked, flash the TWRP recovery on, boot into TWRP recovery, copy the LineageOS zip and the gapps zip over if you want that, and then select the zips inside TWRP to flash to the device." I don't know what it's telling you to "re-enable USB debugging" for, but whatever it is, is something that assumes you're running Android. You don't need to mess with that.
  • UT Tweak Tool wipes out Dekko2 config data, even if not selected

    5
    0 Votes
    5 Posts
    279 Views
    G
    There is now an issue filed: https://gitlab.com/dekkoproject/dekko/issues/138 and with some questions in a comment made by me.
  • Upgrade Nexus 4 from UT 15.04 OTA 14 to latest 16.04

    6
    0 Votes
    6 Posts
    334 Views
    U
    It looks like your phone is still pointing at the Canonical system-image server. You will not be able to upgrade or switch channels until you use the UBports Installer to move to a build of Ubuntu Touch from UBports.
  • sentences displayed with NORMAL characters in DEKKO 2

    8
    1 Votes
    8 Posts
    375 Views
    D
    @doniks I'm not lucky !! It was a great expectation but a false hope ! NOT SOLVED !! It is always uncertain for good display ! Maybe the problem could/should be solved after moving Oxide to Qtwebengine because the problem is linked to Oxide, see issue. Wait. Ps : Emojis should go on a low-calorie diet !
  • After update to OTA-7 a scheduled alarm arrived one hour to late

    3
    0 Votes
    3 Posts
    338 Views
    H
    Hi! Most likely the following known issue: https://gitlab.com/ubports/apps/clock-app/issues/129
  • Great click packages recommendations

    4
    0 Votes
    4 Posts
    394 Views
    arubislanderA
    Ah, you are referring to .deb packages. They can be installed using Libertine. Those are pretty hit or miss at the moment on Ubuntu Touch, but I guess that is the reason for your post
  • This topic is deleted!

    Moved
    2
    -1 Votes
    2 Posts
    34 Views
  • Run script when unlock

    Moved
    3
    0 Votes
    3 Posts
    381 Views
    mihaelM
    @dobey I have what I would call a very agressive power saving mode on my Pro 5 and yes, it saves the battery but when I unlock the phone it's very slow and there is a lot of lag. I made a script to turn on all the cores of the cpu and I made a desktop icon and I run that manually but I would like that script to be run automatically when I unlock the phone.
  • LIBERTINE

    51
    0 Votes
    51 Posts
    15k Views
    advocatuxA
    @Thieb you need to enter a package name tapping on "Enter package name or Debian file" button. Also you'd like to start with other package than Firefox because that's broken (upstream bug IIRC).
  • Nexus 7 (flo) keeps coming out of standby unprompted

    17
    0 Votes
    17 Posts
    964 Views
    arubislanderA
    @Lakotaubp said in Nexus 7 (flo) keeps coming out of standby unprompted: @arubislander Which links ? The git hub one above works for me . Unless I've miss understood. O, then it must be an issue on my end then...
  • Nexus 5 - Screen is now upside down

    5
    0 Votes
    5 Posts
    446 Views
    advocatuxA
    @FishFingers44 maybe that cable can be easily fixed? Is it broken or a bad connection?
  • No sim recognized in Ubuntu mx4

    4
    0 Votes
    4 Posts
    290 Views
    Z
    @giukas I don't know :(. All I did was that I used some clean alcohol to wipe the SIM card and regarding the slot I've just looked inside if there is something visible that would cause the issue and haven't seen anything. So I just blowed some air there ... and it still wasn't ok since the contact was lost later again so what resolved the issue for me was to push the card into the slot thoroughly ... maybe I haven't had it fully inserted before ... there could have been some dust there that have prevented me to place the card correctly. Not sure ... but be careful and try not to destroy the slot it if isn't yet :). Good luck. PS. It could also be a SIM card issue. You may want to try another one to see if it works or try this one in a different phone.
  • Lost IMEI and AT command

    22
    0 Votes
    22 Posts
    5k Views
    S
    great... i knew you problem was different.. but while i was looking for a wifi solution, i am sure i saw some infos on how to recover imei too on some kinds of phones..so..
  • Has something gone wrong

    8
    0 Votes
    8 Posts
    611 Views
    J
    Thanks, I will give all of it a try. Let you know what happens. Are there images that you can get and load?
  • ssh from phone (client)

    7
    0 Votes
    7 Posts
    1k Views
    S
    perfect