UBports Robot Logo UBports Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login
    1. Home
    2. developerbayman
    3. Posts
    Offline
    • Profile
    • Following 1
    • Followers 1
    • Topics 46
    • Posts 300
    • Groups 0

    Posts

    Recent Best Controversial
    • RE: due to technical reasons this may be the end of the road for me for awhile

      FINALLY!!! had to manually resize the partitions for no particular reason that made sense ....no really iv flashed UT on this like 2 dozen times ....i must have flash a borked rom with that android 16 and did something to the partitions ....idk didnt make a lick of sense to me ....ok it made sense

      posted in Off topic
      developerbaymanD
      developerbayman
    • RE: due to technical reasons this may be the end of the road for me for awhile

      i wish i was a better programmer ....so much i want to do here .....at first i was a part of the group that was disappointed because UT wasnt what i thought it was ....i complained ....but eventually realized there is a blank canvas here .....and i could become an amazing artist ......with this personal revelation i now see UT as clay that needs molding from a artist .....i can single handedly shape the future of UT ....and i believe all things done in love can lead to a brighter future for anyone or anything ......iv been pretty down trodden my whole life (iv had a pretty difficult life i think) ....so im a big fan of the underdogs ......ubuntu touch is for sure the underdog .....but a tight knit community and refuses to die ......love it .....im still gonna fix this phone ....i dont think its broke just some technical issue that comes up with flashing a new random rom off the interwebs .....honestly i think its a borked partition and just needs a little format love ......i have a xaiomi redmi note 9 pro (miatoll) .....what is the most high end device supported at this time?? ....eventually im gonna go to whatever that is (money permitting)

      posted in Off topic
      developerbaymanD
      developerbayman
    • RE: due to technical reasons this may be the end of the road for me for awhile

      yeah i always keep the original android 10 version to downgrade

      posted in Off topic
      developerbaymanD
      developerbayman
    • RE: due to technical reasons this may be the end of the road for me for awhile

      yeah im well aware of the android version ....im thinking its more a file system size issue i think i may have had a faulty internet connection or something flashed a bad rom and issues happened ...ill investigate more i might simply need to redownload everything and make sure all my partitions are correct .....also could be something with the android 16 install ....as being new it could have some different requirements?? ...idk i do more when i get off work

      posted in Off topic
      developerbaymanD
      developerbayman
    • due to technical reasons this may be the end of the road for me for awhile

      basically i have been trying to experience android 16 with the new linux terminal so i reflashed my phone to test ...didnt like it as the terminal was still not available on the version i flashed went to go back to UT and cant get it to boot .....now keep in mind im no stranger to flashing things on this device very manually and am ok with the command line and ADB and fastboot ....nothing eludes or intimidates me about flashing this device .....but i still cant get UT to boot ....im not done messing with it (for tonight) ....but it does not look good and i dont know how ill be able to dev on something i cant run .....

      posted in Off topic
      developerbaymanD
      developerbayman
    • RE: full python clickable app prototype

      @arubislander nice ill dive more in the documentation when i get some time but thank you this is good to know

      posted in App Development
      developerbaymanD
      developerbayman
    • RE: full python clickable app prototype

      ok the notification system? surly works on a service type base ....im sure the lingo is different but yeah

      posted in App Development
      developerbaymanD
      developerbayman
    • RE: full python clickable app prototype

      @arubislander WHAT!!!??? ....how? ...like so many questions

      posted in App Development
      developerbaymanD
      developerbayman
    • RE: full python clickable app prototype

      a two way direction service?

      posted in App Development
      developerbaymanD
      developerbayman
    • RE: full python clickable app prototype

      i need to learn more about clickable service mechanism ......the app launches a services than handles pip management with whatever hooking events to change the /usr/local/lib/python to /home/phablet/.local/share/<fullappname>/ ......whatcha all think?

      posted in App Development
      developerbaymanD
      developerbayman
    • RE: Advice on android apk's on m10 x306x

      the .xapk contains the obb files ...so the extaction should contain the apk and obb you will need to place in the android obb folder manually

      posted in Lenovo
      developerbaymanD
      developerbayman
    • RE: Advice on android apk's on m10 x306x

      @Lindisfarne rename the .xapk to .zip and extract it

      posted in Lenovo
      developerbaymanD
      developerbayman
    • RE: so im trying to build a UT rom kitchen

      i really did space on this i already posted it

      posted in General
      developerbaymanD
      developerbayman
    • RE: so im trying to build a UT rom kitchen

      šŸ˜‚ 🤣

      posted in General
      developerbaymanD
      developerbayman
    • RE: so im trying to build a UT rom kitchen

      totally spaced on this .....upgraded to a decent ryzen 9 24 gigs ram ...sweet ....but yeah here is the script i got so far ....almost lost it during the transfer

      https://drive.google.com/file/d/1Z0TPyaX23tIvcMjd4QZoq_OwIgQsbmoZ/view?usp=sharing

      posted in General
      developerbaymanD
      developerbayman
    • RE: Setup a shared folder between UT and Waydroid

      @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."
      
      
      posted in Waydroid
      developerbaymanD
      developerbayman
    • RE: Setup a shared folder between UT and Waydroid

      @AppLee a lot of distros usually have a settling app to auto start stuff initiated by the desktop after boot Linux mint, Ubuntu....most distros and windows have one simple add program/script button add the path to the file or script and starts after desktop boots

      posted in Waydroid
      developerbaymanD
      developerbayman
    • RE: Setup a shared folder between UT and Waydroid

      Does Ubuntu touch have a "autostartā€ feature?....if it already does not exist that could be a clickable....auto start clickable apps or run scripts.....surly someone did this already?

      posted in Waydroid
      developerbaymanD
      developerbayman
    • RE: so im trying to build a UT rom kitchen

      @phmqXPD sorry for the late reply....yeah the idea is to integrate each device tree into its own section and add more to it as time goes on into the framework.....yeah I'm going to bet RN but when I get up ill post the script and lets talk about it and mold it to awesomeness.....I imagine ill need jots of help....as for the links themselves for each....I will need need assistance.....let it be known I have never built UT....I just know I wanted a tool to do it and to make it easy.....I'm obessed with builder kitchens...starting with android back in the day....set some options click a button a bam there is your image.....also I'm building one for my pylinux distro....so i figured...why not try to do one for UT.....eventually my xaiomi redmi note 9 pro will die....then what of my relationship to UT?.....I wanna build for x86_64 and the rockchip rk3588s.....but I very much learn in my own autistic haphazard makes no sense way lol

      posted in General
      developerbaymanD
      developerbayman
    • RE: RetroPie setup on UbuntuTouch

      @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....

      posted in Libertine
      developerbaymanD
      developerbayman