Blog

  • Poor battery life on Rabbit r1 with Ubuntu Touch

    Woke up, and it drained itself again while sleeping, think less % was left then last time, probably slept longer.

    It does have a low capacity battery. But the device page on Ubuntu Touch says 24+ hours for the battery, so wouldn’t think it would have a massive drain while sitting unused.

    Well, I’ll get a better USB battery pack soon anyways.

    Still don’t know if my SIM card will activate. I’ll wait at least until I get a new USB battery pack. Maybe until the case and screen protectors come.

    Still trying to get TWRP to boot past the Rabbit logo. It’s a fstab problem. Or one problem.

    adb works, that’s how I know. I think it might be easier if you compile the kernel. Instead of using a prebuilt one.

    Probably should have bought the Teracube 2s, but no Linux, and the Rabbit r1 was $100 cheaper.

  • Why The Republicans Shut Down The Government

    Sorry Richard, the Republicans shutdown the government.

    “Repeal reforms that prevent taxpayer-funded health benefits from going to individuals here unlawfully”

    I doubt that’s all the reforms do. If it was, I doubt they’d shutdown the government. Try telling the truth.

    I’m far too lazy to lookup all the reforms. But I’ll believe the democrats, that everybody’s premiums are going up next year.

    Also, why are you emailing me Richard? Well, if Google wants my ID in the future, I won’t be able to access that email anymore. I doubt they know the other email.

    “Do you support shutting down the federal government to provide illegal immigrants taxpayer-subsidized health care?”

    I should vote yes on that, just to piss them off. They are lying, so I can lie too. Also, I doubt illegal immigrants, get subsidized health care. Also, they should get rid of their own health care. Make Trump pay for his own security as well.

    And my extra money to buy certain things from my insurance, is going down next year. When everything costs more, which makes zero sense. So yeah, republicans are liars.

    If both sides are saying something different, you should probably look up the bills and see for yourself, or at least see what other people are saying. But seeing all the BS Trump is doing, I won’t believe a word they say.

    How is committing war crimes making anything great?

    I support shutting down the federal government for the truth, the bills will increase health care premiums for a shit ton of people.

    Also, would be funny, if Trump ran out of money, and couldn’t do anything anymore. Not so funny, the military may have no money, and might not defend the US during World War 3.

    But we’re all going to die anyways, a republican said so.

  • Compiling TWRP for the Rabbit r1

    I can reboot now, but it just shows the logo or whatever, not any TWRP stuff.

    [  116.990696] (4)[313:kworker/u16:3][sensorHub] scp_ipi_send fail
    [  116.991012] (2)[251:kworker/2:1][sensorHub] scp_sensorHub_req_send fail!
    

    Not sure that should make it fail to do anything though.

    Ahh missed another step, with the fstab file. Not sure that’ll fix it though.

    If you don’t know what you are doing, and aren’t insane, I don’t recommend attempting.

    Even if I get it working, or at least showing the screen, I probably won’t share anything, or how to do it. Took a shit ton of searching to get this far.

    This is the best how to, well might be missing some info. I didn’t use the scripts from OrangeFox. Worth using, if you didn’t already install everything. I’m doing it in Distrobox, but those scripts probably work in Distrobox too.

    For the Rabbit r1, use bootimage, instead of recovery, so “mka bootimage”.

    I can almost shutdown laptop and turn back on, for updates. Rebooting doesn’t work right, no idea why. Still beats using spyware.

    To test battery life while sleeping, I’ll turn it off with the reset button and turn it on. In case it needs to be shutdown completely before booting for some reason.

    [   14.846569] (2)[265:kworker/2:2]aw87xxx_pa 0-0058: Direct firmware load for aw87xxx_acf.bin failed with error -2
    

    That file doesn’t exist, not on the device, or even in my folder with the code. Not in lib64 folder either.

    It exists in vendor_a.img.

    find . -name *aw*
    ./lib/gc05a2_mipi_raw_tuning.so
    ./lib/hi846_mipi_raw_tuning.so
    ./lib/libstagefright_soft_rawdec.so
    ./lib64/gc05a2_mipi_raw_IdxMgr.so
    ./lib64/gc05a2_mipi_raw_tuning.so
    ./lib64/hi846_mipi_raw_IdxMgr.so
    ./lib64/hi846_mipi_raw_tuning.so
    ./lib64/lib3a.awb.core.so
    ./lib64/lib3a.awb.so
    ./bin/awk
    ./etc/ipsec/ipsec.d/cacerts/thawte.der
    ./firmware/aw87xxx_acf.bin
    

    Hmm, why is it not mounting it? It can’t?

    One more build then bed time. But I wonder, if I need the lib64 from the vendor too.

    If it doesn’t work, I’ll inspect the boot.img from Ubuntu Touch, and see if they included the firmware and lib64 in it.

  • LG G Watch W100

    Bought an “open box” one for $30 or so after shipping and probably tax. Hmm AsteroidOS doesn’t say the speaker works, it has no speaker? Oh well, cheap.

    There’s a new one on eBay for $60. So it’s half off a new one.

    Seller doesn’t have a lot of feedback oddly. But they have other stuff for sale. Hopefully I get it, and no problems.

    Shouldn’t be the R one, based on images.

    Open box needs battery replaced too? That sucks. Says it’s easy though.

    Looked up specs, it has a “loudspeaker”.

    Rebooting works in TWRP now, still nothing on screen. Progress though.

  • Apple loves human suffering

    Trump doesn’t approve of the ICEBlock app, so Apple removed it.

    Hmm, now which watch to get to use with my Rabbit r1. Should probably get a cheap one, since I need a battery pack for it too.

    ICE is violating the constitution, so is Trump.

    I want the Bangle.js v2 but it’s $150. Got to stop using my iPhone. Apple sucks big time now. More then they did before.

    TicWatch Pro 2018/20 might be better then the ASUS one I found. Probably costs more though. Some of the used ones, cost more then the Bangle.js. Hmm, the one for $65 might be a good one. And it has a heart rate sensor.

    TWRP compiled, and is the right size now. Rebooting Rabbit r1.

    And it still won’t boot anything when using fastboot boot xxx.img. Guess I have to flash it.\

    The ASUS ZenWatch 2, the bigger one model, is in better condition probably. And cheaper.

    And TWRP won’t boot.

    Well, adb works. Nice.

    “libc: Using old property service protocol (“ro.property_service.version” is not set)”

    When trying to reboot.

    Found a cheaper watch LG G Watch W100. Think I’ll order, and if I insist on a better one, with a heart rate sensor, I’ll get on e eventually. Or buy it new for $60.

  • WireGuard works on Ubuntu Touch on Rabbit r1

    I had the wrong IP in the config, probably was right before I changed it. That might have been on the day I stayed up till 7 AM. And I’m pretty sure the already compiled version has WireGuard included, unless somehow it flashed the version I compiled, doubtful. Their docs don’t have enough information to build it, not the newest version anyways.

    And the battery probably shouldn’t be draining while doing nothing from 100% to 54% in around 7 hours.

    I might have something running causing the problem. Or I need to reflash completely, including wiping userdata. Might be Libertine causing the problem. Or maybe using a VPN does.

    No SIM card, WiFi was on, but wasn’t connected when I woke up.

    Trying to format TWRP for it now, why not? Got nothing better to do. At least you can mostly find the info needed to do so if you look hard enough. I won’t use an online build system.

    If you copy the build.prop or whatever the name of the file was from the dump or phone, and rename to system.prop, you still have to do work. You’ll get a lot of “error: found duplicate sysprop assignments:” errors. Easy solution, remove the lines from system.prop.

    I doubt TWRP will boot the first successful compile, I have no idea what I’m doing.

    According to this, you don’t need the entire system.prop file. But it’s outdated, cause the vars changed.

    ro.product.system.brand=alps
    ro.product.system.device=k65v1_64_bsp
    ro.product.system.manufacturer=alps
    ro.product.system.model=r1
    ro.vendor.mediatek.platform=MT6765
    ro.system.product.cpu.abilist32=armeabi-v7a,armeabi
    

    Maybe that’ll work for system.prop. And maybe I should reboot my phone, it’s in fastboot, can mess with Libertine, might have an option to make it freeze or something.

    Good luck using a firewall in Ubuntu Touch, I just block the internet by doing that. I just set SSH to run on the VPN IP. And no SSH wasn’t running while I was sleeping, stopped it just in case.

    Good news, Ubuntu Touch won’t boot. Recovery boots though.

    rsync: [sender] link_stat "/home/uranus/mtk/Auto-Twrp-Builder/out/target/product/k65v1_64_bsp/root" failed: No such file or directory (2)
    

    No that folder doesn’t exist. That’s where I’m at with compiling TWRP. And that Auto-Twrp-Builder is crap, no idea what the point of the convert.sh script is. And the other part, you don’t need their python script, you can run with python3 -m twrpdtgen <path to image>.

    Might need to use the magic reset button, shutting down from recovery didn’t fix it either. Hmm, might need to wait longer, or reflash it again. And it booted this time, turned it on without plugging in USB, and waited before doing so.

    Nothing is using much CPU, so probably not Libertine.

    “error: +out/target/product/k65v1_64_bsp/boot.img too large (107126784 > 33484800)”


    LOL. I missed a step from this guide, but now it’s way too big.

    Damn only around 20 GB free on my laptop’s drive. And my entire folder is 200 MB or so.

    Perhaps don’t use the vendor partition to get the vendor folder’s contents. LOL. I got it from the super img.

    Hmm one guide says you don’t need the lib64 folder. Trying to find the guide updated for Android 12.

    Will leave Vendor folder empty, might mount it anyways.

    Added “ro.property_service.version := 2” to the system.prop file, I got the value from adb with Ubuntu Touch recovery, adb shell getprop will tell you. Also changed “PRODUCT_SHIPPING_API_LEVEL” to 32.

  • How to install Ubuntu Touch on Rabbit r1

    There’s two methods, use this script, or use the installer.

    I assume you unlocked the bootloader, and have mtkbootcmd.py working, if not see here.

    What you need:

    To use the installer:

    All is done in the folder you put the script, and/or mtkbootcmd.py.

    • Backup your device with mtkclient-gui, go to read partitions and select all, then uncheck userdata, unless you have userdata you want. (To get mtkclient-gui to see your phone, turn it off, and plug it in.)
    • . venv/bin/activate
    • python3 mtkbootcmd.py FASTBOOT (To get into fast boot, run the command, turn Rabbit r1 off, unplug it, and plug back in)
    • Use the installer until it reboots it, and it says waiting for device.
    • Most likely a boot loop, click the reset button
    • python3 mtkbootcmd.py FASTBOOT
    • fastboot flash boot_a boot.img
    • fastboot flash boot_b boot.img
    • fastboot recovery

    Script:

    • python3 mtkbootcmd.py FASTBOOT (To get into fast boot, run the command, turn Rabbit r1 off, unplug it, and plug back in)
    • ./flash.sh, in the folder you extract the script archive to.

    The script is less work.

    You can always run python3 mtkbootcmd.py FASTBOOT to get back into fastboot if you need to, and don’t forget the reset button.

    You will have to mess with unplugging it and back in, not hard, but it requires it a lot.

    Perhaps if you unlock the bootloader the official way, you don’t need the python script. But I don’t want their OS, or to make an account.

  • How to unlock bootloader on a brand new Rabbit r1

    No idea what version of the OS mine came with. The script had issues in Distrobox. Too lazy to use my desktop, or setup a VM on my laptop.

    You don’t need to email them and ask for permission, or even use the device following this method.

    What you need:

    frp.sh:

    #!/bin/bash
    LAST_BYTE=$(xxd -p -l 1 -s -1 frp.bin)
    if [[ "$LAST_BYTE" == "00" ]]; then
        printf '\x01' | dd of=frp.bin bs=1 seek=$(($(stat -c%s frp.bin) - 1)) conv=notrunc
    fi
    read -p "[*] Unplug your device, press ENTER, plug it back in"
    
    sudo ./mtkbootcmd.py FASTBOOT
    
    echo "[*] Waiting for fastboot..."
    while ! fastboot devices | grep -q "fastboot"; do
        sleep 1
    done
    
    fastboot flashing unlock
    fastboot reboot
    

    Copied and pasted the part of r1.sh for installing stuff, name it whatever, and run it, do it in the same folder as the other scripts:

    #!/bin/bash
    
    install_debian() {
        sudo apt update
        [[ -x "$(command -v git)" ]] || sudo apt install -y git
        [[ -x "$(command -v python3)" ]] || sudo apt install -y python3
        [[ -x "$(command -v pip3)" ]] || sudo apt install -y python3-pip
        [[ -x "$(command -v dos2unix)" ]] || sudo apt install -y dos2unix
        [[ -x "$(command -v curl)" ]] || sudo apt install -y curl
        [[ -x "$(command -v unzip)" ]] || sudo apt install -y unzip
    }
    
    install_arch() {
        sudo pacman -Sy --noconfirm
        [[ -x "$(command -v git)" ]] || sudo pacman -S --noconfirm git
        [[ -x "$(command -v python3)" ]] || sudo pacman -S --noconfirm python
        [[ -x "$(command -v dos2unix)" ]] || sudo pacman -S --noconfirm dos2unix
        [[ -x "$(command -v curl)" ]] || sudo pacman -S --noconfirm curl
        [[ -x "$(command -v unzip)" ]] || sudo pacman -S --noconfirm unzip
        [[ -x "$(command -v virtualenv)" ]] || sudo pacman -S --noconfirm python-virtualenv
    }
    
    install_fedora() {
        sudo dnf update -y
        [[ -x "$(command -v git)" ]] || sudo dnf install -y git
        [[ -x "$(command -v python3)" ]] || sudo dnf install -y python3
        [[ -x "$(command -v pip3)" ]] || sudo dnf install -y python3-pip
        [[ -x "$(command -v dos2unix)" ]] || sudo dnf install -y dos2unix
        [[ -x "$(command -v curl)" ]] || sudo dnf install -y curl
        [[ -x "$(command -v unzip)" ]] || sudo dnf install -y unzip
    }
    
    if [[ "$OSTYPE" == "linux-gnu"* ]]; then
        if command -v apt-get &>/dev/null; then
            install_debian
        elif command -v pacman &>/dev/null; then
            install_arch
        elif command -v dnf &>/dev/null; then
            install_fedora
        else
            echo "Unsupported Linux distribution"
            exit 1
        fi
    else
        echo "Unsupported OS"
        exit 1
    fi
    
    if [[ "$OSTYPE" != "linux-gnu"* || ! "$(command -v pacman)" ]]; then
        pip3 show virtualenv &>/dev/null || pip3 install virtualenv
    fi
    
    if [[ "$OSTYPE" == "linux-gnu"* ]]; then
        if command -v apt-get &>/dev/null; then
            sudo apt install -y adb fastboot
        elif command -v pacman &>/dev/null; then
            sudo pacman -S --noconfirm android-tools
        elif command -v dnf &>/dev/null; then
            sudo dnf install -y android-tools
        fi
    fi
    
    # Setup virtualenv and install requirements
    python3 -m venv venv
    source venv/bin/activate
    
    chmod +x mtkbootcmd.py
    
    # Download mtkclient
    REPO_URL="https://github.com/AgentFabulous/mtkclient"
    REPO_NAME=$(basename "$REPO_URL" .git)
    git clone "$REPO_URL"
    cd "$REPO_NAME" || exit
    pip3 install -r requirements.txt
    • Backup your device with mtkclient-gui, go to read partitions and select all, then uncheck userdata, unless you have userdata you want.
    • To get mtkclient-gui to see your phone, turn it off, and plug it in.
    • Copy frp.bin from your backup to the folder you put frp.sh and put mtkbootcmd.py in the same folder.
    • Run frp.sh and it should modify frp.bin, flash frp.bin using mtkclient-gui.
    • After it’s done flashing, unplug your phone, plug it back in and click enter.
    • Make sure you are looking at the phone, and click volume up when it asks.

    Well, it’s not exactly a phone, but can be used as one with Ubuntu Touch.

    If you don’t use Linux, I can’t help you. Probably can easily be made to work on macOS, if it doesn’t already.

    The script could probably easily be fixed to do everything for you, but I’m lazy. There is a command line mtkclient too, you get both when you compile it.

    The command for mtkclient-gui is mtk_gui.

    If you need to get into fastboot, you can run ./mtkbootcmd.py FASTBOOT. Or put python3 in front of it. You may have to do chmod +x mtkbootcmd.py on it for the script. To run it, you may need to run . venv/bin/activate.

    Currently trying to cross compile the kernel, so I can compile WireGuard. May or may not work. Don’t bother running arm64 in Linux using QEMU, too fucking slow. I could use my Mac mini, but I turned it off, and don’t plan on using it. It has an ARM CPU. Using pbuilder to cross compile now. Just type pbuilder login and do it manually. Works in Distrobox, using a root one.

    If you are using Distrobox, you may need a root one.

    My laptop has Fedora Kinoite, too lazy to install the needed stuff, and reboot. Already need to install updates and reboot.

    No SIM card in it yet. Still trying to get WireGuard to actually work.

  • Glad I don’t buy EA games anymore

    Looks like they just sold it to Saudi Arabia and the dicktator’s son-in-law.

    The anti cheat they use, I think is kernel based, so basically malware. Now the government can mass install malware to everybody playing EA games. They can modify it to do more then it already does.

    Also glad I don’t use Windows.

    Oh wait, bought an old EA game on my Xbox. I should actually cancel the online subscription, and get rid of the Xbox.

  • Rabbit r1 came

    Should it be used as a phone? Not sure, slept for around 2 hours according to the health app on my iPhone, but probably in bed for three or so, and the battery was down to around 50%. Perhaps SSH did that. I was up till 7 AM because of a wrong password.

    Oh and the OTA thing might do nothing. I click update and reboot, and it doesn’t reboot. I rebooted a different way, claims it’s the new version. But I don’t believe it, so flashing it with the installer.

    24.04 is available OTA or in the installer now. I need a better USB battery, cause this Anker turd will only charge correctly with the short “special” cable it came with. Pretty sure the cable I used last time is an Anker cable, just longer and not “special”, but it’s supposed to handle a lot of watts, I forgot how much. Don’t know where the special cable is.

    A how to will be written on rooting a brand new Rabbit r1, and another on installing Ubuntu Touch.

    Well this post had all the info, but I need to clean it up, and make separate posts.

    And I think to update, you just have to reboot into recovery… It failed to update, cause I’m using the installer. But the installer is working so far. I’d recommend rebooting into recovery before using the installer.

    Looks like it worked so far. On the booting screen.

    Yes the screen is tiny, and causes issues in some apps, like the terminal. Can’t even run nmtui or whatever.

    And don’t make the scaling way too big. You’ll regret it.

    The % of the battery is wrong, the bar is way fuller then 3%.

    I think the specs say 1,000mah battery, so not surprising the battery life sucks.