• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

Root [DEV][THEORY] usb UART connection

So after doing a little digging I'm thinking I can blow this phone open with a new bootloader that supports fastboot mode and dual boot, I've been working on CM for this phone and found a similar phone with CM, while looking through some threads I came across this [DEV] MSM7x30 Open Source Bootloader '(L)ittle (K)ernel' - xda-developers and this [GUIDE] USB Uart on Galaxy S devices [2012/09/25] - xda-developers while looking into what USB chip our phone uses I found this https://github.com/mrg666/android_kernel_icon/blob/master/drivers/i2c/chips/fsa9485.c different chip from the other phone but after a quick search I found this de7ec7ed's blog: UART Dongle (Samsung Galaxy SIII) obviously it's for the sIII but it seems that it uses the same USB chip so we have a starting point for UART, also when looking thru the fsa9485.c I found "#if defined(CONFIG_MACH_ICON) || defined(CONFIG_MACH_PREVAIL2)" which shows that the galaxy rush (codename prevail2) also uses this chip so anything that works on ours should work on theirs. Also after looking around on the forums I've found that people with the Jellybean bootloader have more crashes than ones with the ICS bootloader so if/when I start developing a new bootloader it'll be based off of the ICS bootloader if possible

Bootloader to be used: https://www.codeaurora.org/blogs/little-kernel-based-android-bootloader
this bootloader supports our SoC (System on a Chip) which is msm7630_surf all it really needs is the ram amount changed (Default 256MB) and the NAND partitions mapped, I extracted the PIT (Partition Information Table) with Heimdall (Will be posted later) which gives me the NAND partition table so that'll be a breeze, so hopefully we'll have this new bootloader soon

UPDATE: it seems that google uses this lk for it's bootloaders :D samsung doesn't obviously but here is google source and fixes for our SoC https://android.googlesource.com/kernel/lk/+/qcom-dima-7x30-fixes

UPDATE2: did a test compile and it was probly the easiest thing I've ever done all I had to do was type "make msm7630_surf" and it compiled :D but it won't be ready yet this was just a practice to see if I could compile it... feeling awesome right now, possible new bootloader for the reverb :D
EDIT: since our phone has EMMC nand it seems I need to enable the flag EMMC_BOOT=1 which enables the bootloader to do it's magic with emmc nand also uploaded this phones PIT use PIT magic (found on XDA) to read it

More info as I discover it
 

Attachments

So after doing a little digging I'm thinking I can blow this phone open with a new bootloader that supports fastboot mode and dual boot, I've been working on CM for this phone and found a similar phone with CM, while looking through some threads I came across this [DEV] MSM7x30 Open Source Bootloader '(L)ittle (K)ernel' - xda-developers and this [GUIDE] USB Uart on Galaxy S devices [2012/09/25] - xda-developers while looking into what USB chip our phone uses I found this https://github.com/mrg666/android_kernel_icon/blob/master/drivers/i2c/chips/fsa9485.c different chip from the other phone but after a quick search I found this de7ec7ed's blog: UART Dongle (Samsung Galaxy SIII) obviously it's for the sIII but it seems that it uses the same USB chip so we have a starting point for UART, also when looking thru the fsa9485.c I found "#if defined(CONFIG_MACH_ICON) || defined(CONFIG_MACH_PREVAIL2)" which shows that the galaxy rush (codename prevail2) also uses this chip so anything that works on ours should work on theirs. Also after looking around on the forums I've found that people with the Jellybean bootloader have more crashes than ones with the ICS bootloader so if/when I start developing a new bootloader it'll be based off of the ICS bootloader if possible

Bootloader to be used: https://www.codeaurora.org/blogs/little-kernel-based-android-bootloader
this bootloader supports our SoC (System on a Chip) which is msm7630_surf all it really needs is the ram amount changed (Default 256MB) and the NAND partitions mapped, I extracted the PIT (Partition Information Table) with Heimdall (Will be posted later) which gives me the NAND partition table so that'll be a breeze, so hopefully we'll have this new bootloader soon

More to come

So...I'm reading this and trying to wrap my abso-noob brain cells around it, and after perusing the links you provided the only thing that comes to mind is a dual boot set-up on a pc. Probably a VERY poor analogy, right? Anyhow, is there a slightly less tech-speak way of presenting your idea? I want to learn and understand this stuff, and would LOVE to help out when & where I can...

Thanks for not laughing at me (:rofl: OK, I'll laugh with you)
& apologies for noobness...
Sox
 
So...I'm reading this and trying to wrap my abso-noob brain cells around it, and after perusing the links you provided the only thing that comes to mind is a dual boot set-up on a pc. Probably a VERY poor analogy, right? Anyhow, is there a slightly less tech-speak way of presenting your idea? I want to learn and understand this stuff, and would LOVE to help out when & where I can...

Thanks for not laughing at me (:rofl: OK, I'll laugh with you)
& apologies for noobness...
Sox

Well a bootloader starts the device from it's off status, bootloaders can be locked down, buggy and not have features users want, basically a UART (Universal Asynchronous Receiver Transmitter) is a way to talk to the phone on a very low level and debug and recover phones, basically my goal is to make a new bootloader which will eventually support dual boot (Exactly like a PC, perfect analogy) a bootloader is similar to BIOS on a computer and can control many options but none are usually accessible to the average user, basically here's how it works bootloader>kernel>android>user applications or for an even more in depth look
bootloader: loads the kernel and ramdisk into the RAM
kernel: opens the ramdisk and loads init scripts and sets the file system up, starts the dalvik virtual machine
android: run on a dalvik virtual machine or ART(new in kitkat) interprets and runs compiled code from user and system apps

without a bootloader your phone wouldn't even turn on into any sort of software config

if you have questions on any of the terms used here remember google is your friend
 
Well a bootloader starts the device from it's off status, bootloaders can be locked down, buggy and not have features users want, basically a UART (Universal Asynchronous Receiver Transmitter) is a way to talk to the phone on a very low level and debug and recover phones, basically my goal is to make a new bootloader which will eventually support dual boot (Exactly like a PC, perfect analogy) a bootloader is similar to BIOS on a computer and can control many options but none are usually accessible to the average user, basically here's how it works bootloader>kernel>android>user applications

OK, that's a little less intimidating; Thanks. I thought I read a thread for this phone somewhere that this (Reverb's) bootloader wasn't locked...wish I could remember which thread it was in...oh well, maybe I'll find it later.
This morning I was over on the Optimus F7 All Things Root board, and it seems to me they're going or went through a similar situation with their bootloader.
 
OK, that's a little less intimidating; Thanks. I thought I read a thread for this phone somewhere that this (Reverb's) bootloader wasn't locked...wish I could remember which thread it was in...oh well, maybe I'll find it later.
This morning I was over on the Optimus F7 All Things Root board, and it seems to me they're going or went through a similar situation with their bootloader.

the Reverbs bootloader isn't locked I was just providing examples of why you'd want to replace a bootloader if it was locked we wouldn't be able to flash recoveries or boot images (contains a kernel and a ramdisk)
 
Back
Top Bottom