bishopdynamics / superbird-tool

Cross-Platform Spotify Car Thing (superbird) hacking toolkit
133 stars 8 forks source link

Blank screen on adb kernal #1

Closed ivybowman closed 1 year ago

ivybowman commented 1 year ago

This is the command I used sudo ./superbird_tool.py --boot_adb_kernel it shows a blank grey screen

bishopdynamics commented 1 year ago

Are you in USB Burn Mode? You can check by running sudo ./superbird_tool.py --find_device

Can you show me the output in your terminal from running that command?

ivybowman commented 1 year ago

image Yep I am

ivybowman commented 1 year ago

I am having issues with the adb mode in the other tool as well fyi. It would just stay on a logo screen but boot up in the background as normal. https://github.com/frederic/superbird-bulkcmd/issues/14

bishopdynamics commented 1 year ago

Hmm, the most likely culprit is some env var got changed and is interfering. Thats going to be difficult to troubleshoot without connecting to the UART console.

In my Readme, i noted that I had some trouble with --boot_adb_kernel after using --disable_burn_mode, which messes with the uboot var initargs.

I haven't figured that one out yet, but I wonder if you're experiencing the same thing

ivybowman commented 1 year ago

Do you have a near stock emmc dump you could send?

bishopdynamics commented 1 year ago

Here is "never booted" and "booted once" https://mega.nz/folder/kdknjb6Q#cgRZxfXogQVlFhqH2WqT1w

ivybowman commented 1 year ago

Thank you!! I will try this and report back.

bishopdynamics commented 1 year ago

I just did some testing on a totally fresh device, and here are my results

# plug in with buttons 1 & 4 held
sudo ./superbird_tool.py --find_device  # check that it is in usb mode
sudo ./superbird_tool.py --burn_mode
sudo ./superbird_tool.py --boot_adb_kernel
# result: error, and doesnt work
# plug in with buttons 1 & 4 held
sudo ./superbird_tool.py --find_device  # check that it is in usb mode
sudo ./superbird_tool.py --burn_mode
sudo ./superbird_tool.py --enable_burn_mode

# unplug and replug without holding any buttons

sudo ./superbird_tool.py --find_device   # check that it is in usb burn mode
sudo ./superbird_tool.py --boot_adb_kernel
# result: no error, blank screen, but adb works

So there is something going on there that I'm missing, I will keep digging

bishopdynamics commented 1 year ago

Ok, I found the bug (--boot_adb_kernel was not sending env.txt contents), and I have pushed an update.

As an example, here are steps to enable persistent adb and usbnet, disable a/b booting, and disable charger check, on a fresh device (I added this to readme too)

# starting from a fresh device

# plug in with buttons 1 & 4 held
sudo ./superbird_tool.py --find_device  # check that it is in usb mode
sudo ./superbird_tool.py --burn_mode
sudo ./superbird_tool.py --enable_burn_mode
sudo ./superbird_tool.py --disable_avb2  # disable A/B, lock to A
sudo ./superbird_tool.py --disable_charger_check

# unplug and replug without holding any buttons

sudo ./superbird_tool.py --find_device   # check that it is in usb burn mode
sudo ./superbird_tool.py --boot_adb_kernel

# device boots to spotify logo, but app does not launch

adb devices  # check that your device shows up in adb

# setup persistent USB Gadget (adb and usbnet)
adb shell mount -o remount,rw /
adb shell umount /etc/init.d/S49usbgadget
adb push S49usbgadget /etc/init.d/
adb shell chmod +x /etc/init.d/S49usbgadget
adb shell mount -o remount,ro /  # OK if this step fails
adb shell reboot

# device can take a while to reboot, just watch what the screen does and run --find_device until it shows up
sudo ./superbird_tool.py --find_device   # check that it is in usb burn mode
sudo ./superbird_tool.py --disable_burn_mode

# unplug and replug without holding any buttons
#   it should boot normally (app should launch), now with adb and usbnet enabled

ip addr  # you should see usb0 listed
ivybowman commented 1 year ago

Thanks! Now sudo ./superbird_tool.py --boot_adb_kernel does boot fully with the app launching. (After restoring from backup then using the other tool to change the env)

bishopdynamics commented 1 year ago

Huzzah! Thanks for testing! Closing this issue, feel free to open another if you find anything else.