Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HCI commands (readMem/writeMem) fail as soon as bluetooth scanning stops on Samsung S10e #74

Open
KikMyaz opened this issue Aug 31, 2023 · 1 comment

Comments

@KikMyaz
Copy link

KikMyaz commented Aug 31, 2023

First of all thank you so much for creating this project and sharing your research! This has all been incredibly helpful.

Bug Description
readMem/writeMem only works for the first 10-15 seconds after Bluetooth is turned on (or when scanning is in operation). readMem fails 10 seconds after scanning is started, and internalblue produces the following error,

[!] _sendThreadFunc: No response from the firmware.
[!] sendHciCommand: waiting for response timed out!

Hardware and OS
BCM4375B1 (fw_0x1111.py)
Samsung S10e (msm), Android 10, Kernel 4.14 (SELinux Permissive)

Logs/To Reproduce
When scanning is off,

> hd 0x200400
[!] _sendThreadFunc: No response from the firmware.
[!] sendHciCommand: waiting for response timed out!
[!] readMem: No response to readRAM HCI command! (read_addr=200400, len=100)
...
[!] readMem: failed!
> info device
[!] _sendThreadFunc: No response from the firmware.
[!] sendHciCommand: waiting for response timed out!
[!] readMem: No response to readRAM HCI command! (read_addr=2026e2, len=6)
...
[!] readMem: failed!
File "$HOME/conda/lib/python3.11/site-packages/internalblue/cli.py", line 1441, in infoDevice
    bt_addr = self.readMem(self.internalblue.fw.BD_ADDR, 6)[::-1]
              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
TypeError: 'NoneType' object is not subscriptable
EXCEPTION of type 'TypeError' occurred with message: 'NoneType' object is not subscriptable

But as soon as I tap on Scan in Settings -> Connections -> Bluetooth,

> info device
[*] ### | Device ###
[*]     - Name:       Android
[*]     - ADB Serial: [REDACTED]
[*]     - Address:    [REDACTED]

Additional Context
As Busybox netcat was used, I had to change all references to nc -l -p into netcat -l -p for everything to work. This was likely a GNU netcat vs. BSD netcat problem in the new Busybox binary.

@KikMyaz
Copy link
Author

KikMyaz commented Aug 31, 2023

It is probably also worth noting that I had used internalblue/android
/samsung_s10e_2019-06-04_vendor_firmware.zip. No modifications were made to VSC_Write_RAM. At the moment I can only get InternalBlue to work within 15 seconds after initiating bluetooth scan. I could automate a rescan with while true; do am start -n com.android.settings/com.samsung.android.settings.bluetooth.CheckBluetoothStateActivity; sleep 19; done but RAM patches seem to be lost after each rescan.

I also tried samsung_s10e_note20-5g_2021-01-21_bcm4375B1_semco.hcd with the VSC_Write_RAM patch in hci.py but this does not appear to be working at all. This might be because I am on Android 10 which is older than this firmware.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant