Ls Droid - Android BT Pcm flashing P01&P59 Cal+OS+ Clone
Posted: Fri Feb 22, 2019 5:51 pm
I'm already maintaining nearly a dozen threads on various forums and Facebook groups so I'll keep this as short and to the point as I can.
I have been working with Antus, NSFW and others on the PCM Hammer for over a year now. During that time I've also been developing a free Android based app for flashing the P01 and P59 pcm's. My app was running in parallel with the PCM Hammer during the development of the bin reading last srping/early summer. Over the summer I continued development on my app while a suitable flash kernel for reading was found. Near the end of summer I got in touch with Kur4o on Gearhead-EFI and we started development of a flash kernel. This is where my app and the PCM Hammer parted ways and started down separate paths.
I wasn't just looking to create something to read and write most files I wanted to be able to flash anything...well anything the PCM would be able to use
I also wanted to address the shortcomings that other flash tools suffered from and looking back over the last 20 years it was pretty easy to make a list of ways to kill a pcm while flashing.
I have no idea how Kur4o was able to pull of some of the things we wanted to address but over the course of several months we created what I would call "Virtually" a full proof flash kernel and I was able to create a number of algorithms in my app for PCM recovery in ways that have never been attempted before. It took nearly a month making slight tweaks to the app and the flash kernel to pull off what I wanted but in the end the results were almost breath taking.
If a flash fails with any tool in just about every case my app will still be able to recover the pcm. With 2.5kb worth of data on the flash chip I can reliably recover a pcm after a couple of attempts, with closer to 4kb worth of data it will recover with out any issues on the first attempt every time.
While we were creating the flash kernel I was also looking for exploits in the pcm's circuit board design and I was able to find exactly what I was looking for. In the case of a PCM that has become unresponsive due to a failed flash the pcm can be forced to boot into 1 of 3 recovery modes. The recovery mode it boots into is based on what part of the flash chip has corrupted or invalid data....or perhaps nothing at all on it. Using this method in conjunction with my Android app has made recovery of a failed flash into a very simple and quick process.
I have had people testing the app for almost 3 months. Middle of January I had about a dozen people who were testing my app do every thing they could think of that would brick a pcm to the point my app could not recover the pcm. They were given specific instructions to meet the minimum of 3kb worth of data before attempting to brick a PCM and only 1 exploit was found. It was obscure enough that it wasn't even worth looking into a way to correct the issue with the flash kernel. It was the type of thing you would have to do about every stupid thing you could think of in a very specific order for the pcm to brick.
Last week I moved from a closed testing group to an open Alpha on a per request basis just to make sure there isn't some odd underlying compatibility issue on uncommon types of devices. For example the Read version of the App will work on Chrome OS with an Android APK plugin but the write version of the app has some odd screen issues making it almost impossible to use. It wasn't intended to run on the Chrome OS but it was helpful to know it's not going to be reliable with it.
If you would like to try out the "Pre-release" version of the write side of the app you can send me a PM.
The app will work on Android 6.0 and higher
The app will only work with the Obdlink Lx, Mx or Mx+ Bt devices
While no one has run into any issue with the app at this point that's not to say it isn't possible. This is an alpha version and may still have bugs that no one's found yet or there may be a compatibility issue with a type of phone that hasn't been tested yet. I would not suggest running out and using this on your daily driver...it may not end well.
The app is fully functional.....
P01 and P59 calibration write takes between 2 and 3 minutes depending on how fast the phone is.
P01 OS write takes about 10 minutes on most phones, a full PCM clone takes about 12 minutes.
P59 OS write takes about 18 minutes and a clone takes about 20 minutes.
The Obdlink devices only work at 1x speeds so they are a slow but in most cases the time a calibration write takes even at 1x isn't long enough to make it a big deal. An OS write on a P59 is about the only thing slow enough that's going to annoy people.
[youtube]https://www.youtube.com/watch?v=zFHfAmQkGMU[/youtube]
[youtube]https://www.youtube.com/watch?v=NZ4Xt_ebI4M[/youtube]
[youtube]https://www.youtube.com/watch?v=DYc3lrYagqg[/youtube]
I have been working with Antus, NSFW and others on the PCM Hammer for over a year now. During that time I've also been developing a free Android based app for flashing the P01 and P59 pcm's. My app was running in parallel with the PCM Hammer during the development of the bin reading last srping/early summer. Over the summer I continued development on my app while a suitable flash kernel for reading was found. Near the end of summer I got in touch with Kur4o on Gearhead-EFI and we started development of a flash kernel. This is where my app and the PCM Hammer parted ways and started down separate paths.
I wasn't just looking to create something to read and write most files I wanted to be able to flash anything...well anything the PCM would be able to use
I also wanted to address the shortcomings that other flash tools suffered from and looking back over the last 20 years it was pretty easy to make a list of ways to kill a pcm while flashing.
I have no idea how Kur4o was able to pull of some of the things we wanted to address but over the course of several months we created what I would call "Virtually" a full proof flash kernel and I was able to create a number of algorithms in my app for PCM recovery in ways that have never been attempted before. It took nearly a month making slight tweaks to the app and the flash kernel to pull off what I wanted but in the end the results were almost breath taking.
If a flash fails with any tool in just about every case my app will still be able to recover the pcm. With 2.5kb worth of data on the flash chip I can reliably recover a pcm after a couple of attempts, with closer to 4kb worth of data it will recover with out any issues on the first attempt every time.
While we were creating the flash kernel I was also looking for exploits in the pcm's circuit board design and I was able to find exactly what I was looking for. In the case of a PCM that has become unresponsive due to a failed flash the pcm can be forced to boot into 1 of 3 recovery modes. The recovery mode it boots into is based on what part of the flash chip has corrupted or invalid data....or perhaps nothing at all on it. Using this method in conjunction with my Android app has made recovery of a failed flash into a very simple and quick process.
I have had people testing the app for almost 3 months. Middle of January I had about a dozen people who were testing my app do every thing they could think of that would brick a pcm to the point my app could not recover the pcm. They were given specific instructions to meet the minimum of 3kb worth of data before attempting to brick a PCM and only 1 exploit was found. It was obscure enough that it wasn't even worth looking into a way to correct the issue with the flash kernel. It was the type of thing you would have to do about every stupid thing you could think of in a very specific order for the pcm to brick.
Last week I moved from a closed testing group to an open Alpha on a per request basis just to make sure there isn't some odd underlying compatibility issue on uncommon types of devices. For example the Read version of the App will work on Chrome OS with an Android APK plugin but the write version of the app has some odd screen issues making it almost impossible to use. It wasn't intended to run on the Chrome OS but it was helpful to know it's not going to be reliable with it.
If you would like to try out the "Pre-release" version of the write side of the app you can send me a PM.
The app will work on Android 6.0 and higher
The app will only work with the Obdlink Lx, Mx or Mx+ Bt devices
While no one has run into any issue with the app at this point that's not to say it isn't possible. This is an alpha version and may still have bugs that no one's found yet or there may be a compatibility issue with a type of phone that hasn't been tested yet. I would not suggest running out and using this on your daily driver...it may not end well.
The app is fully functional.....
P01 and P59 calibration write takes between 2 and 3 minutes depending on how fast the phone is.
P01 OS write takes about 10 minutes on most phones, a full PCM clone takes about 12 minutes.
P59 OS write takes about 18 minutes and a clone takes about 20 minutes.
The Obdlink devices only work at 1x speeds so they are a slow but in most cases the time a calibration write takes even at 1x isn't long enough to make it a big deal. An OS write on a P59 is about the only thing slow enough that's going to annoy people.
[youtube]https://www.youtube.com/watch?v=zFHfAmQkGMU[/youtube]
[youtube]https://www.youtube.com/watch?v=NZ4Xt_ebI4M[/youtube]
[youtube]https://www.youtube.com/watch?v=DYc3lrYagqg[/youtube]