[HTC Droid DNA] pyroguysf:
Intro

I don't mean this to be a thread for any specific ROM or problem, but rather a general guide that essentially eliminates all doubt of machine or user error (we all make mistakes). This is generally geared towards the issues users are experiencing when flashing an AOSP ROM, but can also apply to Sense, and even other devices. This covers from downloading a ROM forward, and also making sure that everything gets properly installed with no corners cut, so that everybody can be on the same page when a problem arises. I'm not trying to say anybody's way of doing things is wrong, but I've see a lot of people asking different questions that end up getting solved with the same few answers. This isn't a "how to flash" thread, but rather how to ensure you're getting your device in a clean, fresh state so that everybody can be on the same page when it comes to bugs, otherwise nobody is going to want to help you if you don't try to help yourself first.

I know this is on the longer side, so key points are underlined, with a TL;DR at the bottom

Downloading

Checksums or hashes are a great way to make sure that the *.zip or any other file you're downloading is not only the right one, but that it hasn't been corrupted or tampered in transfer (uploads or downloads). You'll probably need to install something to work with chescksums- personally I like the open-source HashCheck for Windows. It adds a "Checksums" tab to the right-click > Properties dialog that automatically calculates MD5 (most common) and SHA-1 (more advanced) hashes.

I encourage anyone posting a file to also post the MD5 with it, for everybody's sake, since it only takes a few extra seconds to eliminate all doubt of a bad upload or download.

HashCheck even gives an option to create a *.MD5 file, just like the ones you might get from goo.im. If you're on Linux, Android, or presumably Mac you can check a file's md5 by opening terminal and simply typing "md5sum <filename>" without the quotes. If a file is posted without an MD5, you can download it twice and check it against itself, but just keep in mind you're going to be hitting somebody's server twice as hard, so only do it if necessary. Now that you're sure you have the right files...

Wiping/Flashing

Most people know dirty flashing is at your own risk, and if you have a problem, the first thing anybody's going to tell you is to do a clean flash.

No really, just clean flash- that's what backups are for, but that's a whole different topic.

Unfortunately, most people consider a clean flash to be just a factory reset, but that only wipes dalvik, cache, and data (except your sdcard), while leaving the system partition intact.

To do a proper clean flash you want to go into advanced and make sure that system gets wiped in addition to dalvik, cache, and data.

I can't say exactly what (sorry), but there's lots of miscellaneous things that can persist between flashes, especially when you're going to a different ROM. For us DNA owners, there's still a lot of activity in our CM device tree, meaning that even on the same ROM, some of our device files may change between versions which will necessitate a wipe of system. Maybe it's just me, but it seems things go out of line more often on 4.3 so I just always wipe system now.

If you're here, you probably know how to flash a ROM, but always double check the OP or first few posts and see what gapps/settings/etc are recommended.

I'm also going to remind you that it takes just a few extra seconds to create a *.md5 file with HashCheck that you can push to your device along with the *.zip and TWRP (probably CWM too) will check the file against it's MD5 before flashing it.

After using the Setup Wizard to log in to your Google account, make sure that you uncheck the box to restore settings and data to your phone

, otherwise those can cause problems. Now you can be sure that whatever is on your device is clean as can be and as the developer intended, otherwise you're probably not going to get much help.

Narrowing down the problem

Now that you've got a brand spanking new and clean ROM is the best time to try and narrow down a problem, but before you post anything, try the golden rule of IT- "Have you tried rebooting it yet?" Also, you can try booting to recovery to clear just dalvik and cache and/or repair permissions.

This is the first time you should consider making a post about your problem, but please, please, please don't make a post that just says something like "Settings FCs." Posts like that don't tell anybody anything- the best thing you can do is pull a log (more on that in a second), and create a post in the appropriate thread which you can determine as follows:

Start by seeing if the problem occurs with nothing installed besides the ROM and recommended gapps- do not restore any backups, install any apps, or flash any kernels, even if the OP recommends it. If you're having problems with Settings or any Google app, there's likely a conflict with the gapps package that should go away if you reflash only the ROM, otherwise it's a bug in the ROM itself. Either way, if you can reproduce a problem at this point you should post in the ROM thread. If you want to flash a custom kernel, only do so after you've verified the problem isn't with the ROM or gapps. Flash only the kernel, and if there's any problems after that, post them in thread you got the kernel from, not the ROM thread.

If you're having a problem with an app, once you've completed the above steps, install only that app without restoring any data. If you can't replicate the problem, there's likely an incompatibility any corresponding data you may have restored, and sorry, but there's not really anything you can do about that. If the problem occurs with a freshly installed app, first check the Play Store to see if other users are experiencing the same problem- there may just be something wrong with the app. If it only seems to be you having this problem with a clean install, the ROM thread is the best place to post, although keep in mind other users may not be familiar with app.

Pulling and posting logs

Even now, nobody is obligated to help you (you flashed that ROM at your own risk, remember?), but once you're at this point, you'll have a better chance at getting help. Try to include as much information as possible like what else you were doing, what screen you were on, what button you tried to press, etc. and if you can, try to see if you can replicate it.

Like I mentioned above, posting a log is the best way to get help, and they're really easy to get. Not everybody is going to understand every line, but if you know what you're looking for, occasionally the log can tell the developer exactly what the problem is, and bam- easy fix.

First make sure USB Debugging is enabled in Developer Options (if you don't see Developer Options, go into About Phone and tap on the Build Number line 7 times), and make sure that Root Access is set to both Apps and ADB.

Now as far as gathering these logs, SysLog is by far one of the easiest ways- download it, open it, and press "Take Log." It pop up a toast message saying that your logs are in /sdcard/SysLog/<DATE_TIME>.zip and it'll even give you the option to share it via email, Dropbox, or anything else you might use. Post that and you'll have even better chances of getting help. For simplicity, I'm not going to details on manually pulling logs, however if you're stuck in a bootloop or something like that and can't run the app, use "adb pull /proc/last_kmsg" and post a link to that file.

TL;DR

Sh*t happens, learn to deal with it or go back to stock

Verify your download with an MD5 Checksum

Wipe system in addition to factory reset (dalvik, cache, & data)

Flash ROM and gapps without installing anything else or restoring any data

Pull a log, it's really easy

Now is the best time to make a post about your problem