yashsingh1/xdaforums huggingface dataset:
[One (M9) Android Development] Sneakyghost:
Mate, I have seen you stick around several threads since quite some time, including my threads. I assume you must have come across posts of mine where I outlined the "secret" behind my firmware.zips.

It really isn't anything secret or special. Its easy to figure out, so I am a bit errm... astonished?... you haven't figured it out with all the bits and pieces you must have seen before.

1.) have some RUU for the variant you want to do. Just any RUU.

2.) take the RUU firmware as base and put in a folder, best would be to give the folder an obvious name like the software version number.

3.) have each and every subsequent official OTA firmware up to the very version you finally want to do.

4.) put the firmware images in the OTA firmware into the folder with the RUU firmware image, overwriting existing ones. Start with the OTA firmware that was supposed to update the RUU you are using as base. Then follow with the next immediate OTA firmware. Do not leave out any OTA. Once you put in the latest files, zip up the zip as M9_[SoftwareVersion]_[VARIANT]_FullWipe.zip like in this example: M9_3.35.401.12_WWE_FullWipe.zip.

Additional info:

- in the OTA firmware, some images are omitting the *_signed.img in the name. Like aboot.img instead of aboot_signed.img. So when copying and replacing, you need to check in the folder afterwards for double image files. Else you could end up with a "recovery.img" and a "recovery_signed.img". Delete the older on of each pair you find.

- Check on the android-info.txt file so its the correct one at the end.

- When you have a current RUU, none of that copy/replacing applies to you. You would then simply zip up the RUU firmware without the system.img. That's all you do then.

- For the NoWipe versions, delete everything that belongs to the kernel, delete everything that reformats data, delete the recovery, delete the splash image. Kernel files: dt.img, ramdisk.img, boot.img. Data files: dzdata_*.img, dzdata_*.hdr. Splash: sp1.img or splash1.nb0. Recovery: recovery_signed.img or recovery.img. Replace with latest twrp image, rename that to recovery.img.

I think that's about it. You see, a real idiot proof method to always have a full firmware that can update a phone from ANY prior software version (which is what makes my firmware a little special, the other packs all just do the incremental thing).

You might face issues with the RUU because you need to decrypt that in linux, using ruuveal, bruutveal and possibly the brilliant automation of the whole process, scripted by [MENTION=2605798]nkk71[/MENTION] and [MENTION=1162986]Captain_Throwback[/MENTION].

If you have issues with linux and using ruuveal, this is not for you. You will have to wait for others to do it then. I had a very hard time getting a working Ubuntu environment together and even have it communicate with my windows host computer. I know it isn't easy for noobs, but there are fantastic websites out there which detail every single step in that process. All you need is Google search.
[One (M9) Android Development] ThePhoneGeek:
Thanks for the insights, I've been around here a while and know my way around both Windows and Linux and figured out decrypting and such. Where I was stuck was understanding what should stay and what should go in terms of the modified firmware and if this was detailed previously and I missed it I do apologize. I had found many elements of this but was unable to pull it all together.

Thank you again for the lesson and I appreciate you sharing the knowledge.
[One (M9) Android Development] blueberry60:
Many thanks detail explanation about firmware. As you mentioned above I've extracted 3.35.401.12 0PJAIMG .zip to firmware.zip,system.img and boot.img with [MENTION=1162986]Captain_Throwback[/MENTION] Decrypt Tool.There are three android-info.txt in firmware.zip and which one can I use main android-info.txt and delete others?

View attachment 3661812

View attachment 3661813

View attachment 3661814

View attachment 3661815
[One (M9) Android Development] Sneakyghost:
I usually keep the android-info.txt with the long switch set at the bottom. Logic behind that: any one of the updates or the RUU would have needed all the switches set in that section. So I better keep them in order to preserve htc functions.

I have NOT bothered with trying to understand the logic behind it, although I lately had a feeling that those switches are solely used when flashed with ARUWizard (the "RUU"), but ignored when flashed via fastboot or sdcard method.

However, this is all mere guessing. Since the packs work the way I do them, and no serious issues have surfaced, I don't see the point in extra efforts. (I turned very lazy the past year or two).
[One (M9) Android Development] Chezbel:
Although necessity is the Mother of invention, laziness is the Father of invention.
[One (M9) Android Development] Sneakyghost:
The initial research about what can be removed and what should rather stay was mostly done with the M7, 3 or so years ago. After that, I gained a basic understanding of what image does what and no more research was needed. The way I did it was pretty basic too. I am not a programmer, let alone a reverse engineer, and my skillset ends with writing very basic batch scripts. However, everyone with a sharp mind can open these image files with a hex editor and try to figure out what they do when the name isn't already clear. Almost every image contains some plain text strings which give away key functions. Then, if nothing helps figuring out something, you can experiment with swapping out images, observing what it does to your phone. Of course that is like driving a car blindfold. You risk bricking your device.

So in order to avoid that, I usually have a google session about each image file I try to understand. As search terms I start with the name and variations of it up to searching for text strings I found in an image.

And when nothing gives me a clue, I go talk to the real masters of the XDA code universe, Jcase and Beaups. They seem to understand almost every firmware image. Like was the case when the M9 suddenly introduced aboot and hosd images. Aboot became pretty clear by a simple search: its kind of an open source bootloader that basically replaces the hboot bootloader. The hosd Image was more of a riddle to me and after I found hints that it might be sort of a micro linux, I talked to the sunshine folks and they said its basically a third mini OS on our phones which is based on Linux and gets booted as "Download Mode" - it can also understand fastboot like a bootloader and enables a lot of advanced functions on the phone, below actual OS level. Kind of like the recovery, but with a different focus.

You see, all I do is very basic and easily done by anyone. It just takes a lot of reading and thinking about stuff, but if you invest some time into that, you see the outcome is a good understanding of the tech you use and it enables you to better manipulate it so it suits your needs better ;)
[One (M9) Android Development] Sneakyghost:
Wise words, my friend. That bears a lot of truth! :laugh:
[One (M9) Android Development] petru.tomsa:
When we find last version of firmware to flash from a zip file? 3.35.401.12?
[One (M9) Android Development] lsujay:
Unable to figure out Firmware update problem

Disregard... I tried one more time and was successful.

Thanks
[One (M9) Android Development] liam_davenport:
You need to change your model ID to the one in the text file
[One (M9) Android Development] Sneakyghost:
:laugh::crying:

In the Download Sheet since January 3rd, 2016 - I just didn't update my thread.

Its worth looking into my download sheet too when you are wanting something. Sometimes it's already there...

[EDIT]

Fixed Opening Post to say 3.35.401.12

[EDIT 2]

Minor update to my Batch Tool - I added new TWRP 3.0.0-2 and Stock 3.35.401.12 recoveries.

[EDIT 3]

Thanks to [MENTION=2605798]nkk71[/MENTION] for decrypting the TMUS RUU for me - unfortunately I have messed up my linux/windows machine and couldn't get it back up till today. So Nkk71 was kind enough to give me the images for zipping up. He deserves all the credit today. He's a real DUDE. :laugh:

Recent additions​
[One (M9) Android Development] Scabes24:
Nice work... Recognized Contributor.. (just accept it)

Seriously though ?
[One (M9) Android Development] nkk71:
:crying::crying::crying::crying::crying::mad::mad:
[One (M9) Android Development] Sneakyghost:
Just cuz I know it'll get to you. Fun poking into bleeding wounds. Thanks for the work, mate.
[One (M9) Android Development] thedoctorp:
how do I only flash the touch panel (tp_MXM11876.img) taken from firmware.zip
[One (M9) Android Development] Sneakyghost:
Oh you posted on the thread too. What was the PM for then? You desperate or something? I don't like that. Either you wait until I check my threads, or you find out yourself. But sending PM's after posting on thread is kind of, err, impolite?

Like you pointed out in your PM, the file gets bypassed.

Bypassed means the file is either already installed or its the wrong touch panel driver. There are 2 or 3 different touch panels for the M9, my firmwares usually include the driver in each firmware zip in order to provide a FULL upgrade, if someone decides to e.g. upgrade from 1.xx straight to 3.xx.

If the driver was updated in 2.xx and you already flashed 2.xx, the driver in 3.xx will be the same as in 2.xx unless it was upgraded again.

You can do a simple hash compare.

Say, your MainVer says you are on 2.10.401.1, and you flash 3.35.401.12, the file will get "bypassed" because 3.35.401.12 firmware file is the very same as the one from 2.10.401.1 - now, to verify that, you can hash-compare the file from 2.xx and 3.xx and you will see that they are identical.
[One (M9) Android Development] thedoctorp:
thanks for the reply.

however, I wrote in private because I wanted to directly ask you this my doubt, I asked a simple question if you want you can give a simple answer, otherwise not! is simple (this is education in my country)

not to develop, if you do not want questions asked

Thanks anyway
[One (M9) Android Development] Kratos90:
You seem rather ungrateful, he never said don't ask questions, he said don't cross post, multiple threads/threads and PM is annoying and wrong. He naturally would answer questions on his thread so no need to also send him a PM, you can simply mention him in your thread post to make sure he sees it. With that attitude some people won't even try to help you, he did answer your question, if you didn't understand or think the answer is above your head then ask for him to explain in a simpler way, simple
[One (M9) Android Development] Sneakyghost:
Alright then. Lets work this out, shall we?

First, please get me the output of "fastboot getvar all"

Secondly, tell me what the exact problem with ViperOneM9 is.

I will try and see if I have an idea.
[One (M9) Android Development] thedoctorp:
I do not see where you saw ingratitude.

I respect the work of a developer, but is simple, I asked a question, if a person wants answers. is simple. nothing "gossip" thanks
[One (M9) Android Development] Sneakyghost:
Leave him alone buddy, I wasn't nice either. I just got home from work and am somewhat shattered. I need a bit of a rest. But the issue is interesting. He told me in PM, that ViperOneM9 is the only ROM having an issue with a certain touch panel. Sounds interesting at least. Maybe an old driver can fix his issue. Or a new one. Whatever.
[One (M9) Android Development] thedoctorp:
I get only this

< waiting for device >

(bootloader) kernel: lk

(bootloader) product: htc_himauhl

(bootloader) version: 1.0

(bootloader) imei: xxxxxxxx

(bootloader) version-main: 3.35.401.12

(bootloader) boot-mode: download

(bootloader) version-baseband: 01.01_U11440792_97.00.51203G_F

(bootloader) version-bootloader: 1.0.0.0000

(bootloader) mid: 0PJA10000

(bootloader) cid: 11111111

THX
[One (M9) Android Development] Sneakyghost:
OK.

Then I suggest you download the 2.10.401.1 zip and flash only the TP from that zip. If that does no change / gets bypassed, try the one from 1.xx.

Tips:

- Install the ROM clean again after a TP change. Let it boot up and adjust and then check if your problem is still there. You can backup your current ROM first and restore it after testing.

- When you flash an old touch panel driver with the old android-info.txt, your "fastboot getvar all" output will then say you have old firmware installed. This is because the info in that output comes from the misc partition. That partition gets updated by android-info.txt with every flash. So you will see what you flashed last in that output.

- You will NOT need to try TouchPanel drivers from other variants (for example T-Mobile 3.39.531.7) because they will be the same. HTC ships the M9 with 2 or 3 different touch panels spread over all markets, regions, carriers, etc.

[EDIT]

I ran the touch drivers through beyond compare quickly. The MXM panel driver was updated from 1 to 2 and from 2 again to 3. The Synaptics panel driver has remained the same from 1 to 3 - no update for that one.
[One (M9) Android Development] thedoctorp:
ok try this solution

thanks for the reply

I'm sorry for the misunderstanding
[One (M9) Android Development] thedoctorp:
hi guys

I tested it, but it still does not work.

I updated the drivers 1-2, 2-3.

:confused:
[One (M9) Android Development] Sneakyghost:
Do you know of any reports that detail the same problem like you have?

If not, if your device is the only one affected, you should consider contacting HTC for hardware damage.
[One (M9) Android Development] thedoctorp:
because it is not a hardware problem only it happens with ViperOne, and they're not the only one who happens when you look in the thread viperonem9

It will be a incopatibilità with the touch panel rom

Thanks anyway
[One (M9) Android Development] Scabes24:
Then shouldn't it be specific to the ViperOne ROM thread? I mean maybe there's a language barrier here, but you've been posting/asking different questions in various dev threads, without receiving a single answer that solves one of your issues (lately at least). Doesn't that ring a bell? And you originally said it is education in your country, not dev... So why are you asking in the dev section?

I'm sorry for being an ***hole, and I wish I could help you, but I'm honestly surprised you're not getting this same reply from sneaky. Maybe I'm missing something... In that case I'm sorry.
[One (M9) Android Development] thedoctorp:
we do not understand it, that's okay though, we ignore it, there is no problem

Inviato dal mio HTC One M9 utilizzando Tapatalk
[One (M9) Android Development] Sneakyghost:
Look, I am not stupid enough to fall for that crap. Really.

Of course I searched the ViperOneM9 thread for touch panel related things. I used search terms: "touch panel"; "TP"; "Touch Issue"; and some less related words. There was NOTHING.

And why do you think I even bother asking you for evidence if I had found any myself? There is nothing on ViperOneM9 thread except random, unrelated stuff. Not even your posts turn up.

I only find your post when I am searching for your username. And guess what turns up?`A series of issues, all hardware related, gyro sensor, blah blah blah. And the funniest thing, I still don't get what your issue exactly is. You also didn't answer my question regarding the exact issue.

I can tell you without more researching (why should I?) your phone is probably defective. So, can we please let it be now? It was interesting for a moment but its by far too isolated to be a serious concern to any dev. Not ROM, not firmware, nothing. Just your phone. Sorry we cannot help.

Bye bye.

[EDIT]

Forse si dovrebbero usare per Moto GP, Signore Valentino Rossi (Google Translate)
[One (M9) Android Development] thedoctorp:
I assure you that the phone is not broken, look right, look ... navbar maxim1187 .... even in the kernel elementalx discussion the question is asked.

it is not me who invented things.

but, I repeat, there is no problem, do not understand why you so warm ...

someone has insulted you? I'm claiming something from you?

I think not, so relax man

I'm sorry that you take it as an insult,

fortunately there are many developers who respond in a serious way

P.S. google is wrong to translate. = What you wrote does not mean anything
[One (M9) Android Development] 5m4r7ph0n36uru:
I've seen you asking questions - literally - all over this forum, including two to three threads you opened up in the Q&A section. Reading what you're writing and asking I obtain two results:

1) HW issue on your phone

2) you don't know anything about what you're doing when flashing and modding.

As a logical result of 2) I'd advise you to revert back to stock, start learning and reading about the basics and don't change anything as long as you don't exactly know what you are doing.

Send by the swarm intelligence of my coffee machine ?.
[One (M9) Android Development] Scabes24:
Look sneaky tried, and he tried harder than I thought he should've. As much as I hate to admit it, he knows much more about firmware-related anything than most of us (notice I said "most" sneaky, don't get a big head ?). So if he gives up on you, it might be your fault.

P.S. Google Translate works both ways.
[One (M9) Android Development] BLEK0TA:
I can't instal drivers on my vista notebook.. Do all step by step but still bad results
[One (M9) Android Development] Sneakyghost:
So, now we are a driver support thread, yeah? I believe there's a Q&A forum for such questions. At least there was last time I checked.
[One (M9) Android Development] 3ll!o7:
hi

I am trying everything!

I tryed with virtualbox and Windows 10 on my linux machine but after installing adb, fastboot, htc_fastboot it doesn't see my device when I do: fastboot devices

So, can anyone help me for good?
[One (M9) Android Development] xunholyx:
Are you booted to bootloader? If not, adb devices will work.

If you are, it's a driver issue. Download HTC Sync and let it install the drivers, then uninstall HTC Sync. It doesn't play nice with ADB. The drivers will remain.
[One (M9) Android Development] Scabes24:
So... After quite a bit of searching, I found that this is in fact not a driver support thread (and according to sneaky, it's not even supposed to be a support thread). I had to dig a bit deeper to find out if there truly is a Q&A forum for the M9, and I can confirm, it does exist. It's buried in the root of the M9 device forum directory. Thanks for the heads up Sneak ...now I just need to figure out what Q&A means... ?

(Sorry sneaky, just my monthly troll post passing through ?)
[One (M9) Android Development] lsujay:
Like an idiot, I installed the T-Mobil firmware on my AT&T device and now I'm getting errors in TWRP "Unable to mount /carrier" and in Adnroid "Unfortunately the process com.android.phone has stopped". Any ideas on how to fix this? Do I need to load an original AT&T or Developers RUU? I've loaded tons of firmware and ROM's without any trouble before this boneheaded decision, but any help would be appreciated as I don't want to make it worse then it already is.

Edit: I loaded the Dev RUU shortly after this post and was able to get back to a stock ROM that worked, I just lost all of my pics and docs in the process, but no big deal. I'm back home now and will start by loading TWRP and go at it again. Thanks for the response [MENTION=3927388]gregsarg[/MENTION]
[One (M9) Android Development] gregsarg:
I'd flash the AT&T dev RUU and start fresh. ...g
[One (M9) Android Development] Black_Eyes:
Can someone help me out? I have m9, recently bought, It's used though.

The problem is, It's on Android 5.1, Locked, S-Off, CID: HTC_001 , Whenever i try to update the mobile, It says modified system, Please revert back to stock.

Question is, how do i flash the new firmware for android 6.0?

Do i need to unlock the bootloader ?

Please, Don't be angry on me, Since it's S-off firmware thread, that's why i asked.
[One (M9) Android Development] 5m4r7ph0n36uru:
Hi,

best would be to flash the Marshmallow RUU of version number 3.35.401.12. A download link an how to flash can be found in [MENTION=5872674]Flippy498[/MENTION]'s thread, found here. Look up the Google sheet in his signature for link and precise instructions. For further questions you can ask in his thread. We'll answer them there ;).

Hope it helps!

Send by the swarm intelligence of my coffee machine ?.
[One (M9) Android Development] Gibz97:
Thank you very much [MENTION=1102297]Sneakyghost[/MENTION] for your awesome effort, your tutorials have immensely helped me understand how HTC works. Keep up with the great job :good:

However I would like to point out a little error on the Google spreadsheet link which shows that:

x.xx.708.x is Asia-TW (it's supposed to be Asia-HK)

x.xx.709.x is Asia-HK (it's supposed to be Asia-TW)

Thank you :good:
[One (M9) Android Development] Sneakyghost:
Thanks for letting me know. I'll check it tonight. At work right now.

[EDIT]

Cross-checked with my old collection of HTC customer/region identifiers and yes, you were correct. I corrected it. Thanks.
[One (M9) Android Development] oliphillips:
Hi, thanks for all the hard work. Which would be the best version to flash to my phone. It is an EE UK phone.

Cheers
[One (M9) Android Development] Flippy498:
[MENTION=1102297]Sneakyghost[/MENTION]: Since I didn't want to annoy you (again) with requests for new full stock firmware packs* I decided to create my own ones using the instructions you posted here. I've already tested them with my M9 and as far as I can tell they seem to work fine. Feel free to add them to your google sheet.

M9_3.35.111.14_FullStock.zip

M9_3.36.709.3_FullStock.zip

* for firmware versions which lack a RUU
[One (M9) Android Development] Sneakyghost:
Thank you Flippy, you are an angel! That's how XDA works :D

I downloaded the zips. I will adjust the android-info.txt files (there are still all three in there), then create the corresponding no-wipe versions and upload them to my AFH. I will leave credit to your name in the spreadsheet and here. If you want to keep them hosted on your AFH instead, I recommend you contact me and I will send you the ready zips so you can host them. But I suggest you let me put them together with the other zips, else you'd create just another AFH account that would need maintenance the coming year or two. With my account, it is guaranteed that it will be checked and maintained for the lifecycle of the respective phone, at least.

[EDIT]

Thanks to [MENTION=5872674]Flippy498[/MENTION] for putting together two decent stock bases, one is TMO-DE and one is Asia-TW (111 and 709 or speaking CID's: TMOB101 and HTC_621)

Recent additions​

[EDIT]

I made a google docs Survey. I want to know how many people are intending to come along to the M10.

So, to have a good statistic, I mainly want to know: of the existing M7/M8/M9 users, who will be moving to the M10?

The interesting aspect will be the ratio of Yes/No. Will HTC loose customers again, even among the die-hard fans? Or will it gain again.

I hope to get some insight. Maybe, if you find statistics interesting, you might want to answer at least the first question. I left the others open. Only question 1 is mandatory.

Survey Link​
[One (M9) Android Development] ibrahimijk:
Hi,

I tried to update firmware but I am unable to...

- I tried M9_3.35.401.10_NoWipe_TWRP2871b1.zip

- I got the error "remote: 10 RU_MODELID_FAIL modelid in android-info mismatched"

- Then I changed MID 10000 to 12000 by unzipping as described in details. Then zipped back

- I tried to update the firmware again with MID changed zip but this time I got "remote: 22 RU_HEADER_ERROR"

No details for error "remote: 22 RU_HEADER_ERROR". Don't know how to fix this

Stuck here. Please guide how to update firmware.

Many Thanks
[One (M9) Android Development] 5m4r7ph0n36uru:
Hi there,

first question of mine: do you have S-OFF, as the firmware zips provided here aren't signed and thus cannot be flashed with S-ON.

If you got S-OFF I'd do it the following way.

1 download the nowipe zip again

2 boot M9 to download mode

3 change MID of the device, using the command "fastboot oem writemid 0PJA10000"

4 flash the above downloaded file

Cheers