Disclaimer "just because i am trying to be helpful does not make me responsible for anything that you do to your phone. playing with any of this stuff could destroy your phone"
I am not a dev, but I have been flashing on Samsung phones since the international S2 came out. I also spend a ton of time reading the forums and researching what I don't know. I would like to give back to the community in some way and I hope that this post can help the noobs not brick their devices, as well as keep them from being overly annoying to the members and developers here by posting in the wrong places and asking dumb questions.
Some basic rules if you are a noob and don't want to turn your phone into a brick.
1. be patient. don't be the first or even the tenth person to flash anything. wait until you see others using whatever Rom or kernel with success.
2. If you have any doubts about what you are doing, read more. don't flash.
3. make sure you are in the forum for your device, not some similar or related device.
Some basic rules for these forums
1. If you have a question, the first thing to do is look it up yourself. that means searching the forums first, then searching Google.
2. If after searching you can't find an answer, then post in the q&a forum
3. don't report bugs unless you are using an intact version of whatever Rom, if you have changed kernels, installed a ton of apps etc it probably isn't a bug, it's a bad combo or its you.
4. don't report bugs unless you are 150% sure that no one has reported it yet.
5. if you report a bug, make sure you can duplicate it first, then get a logcat of the problem so you can help (see below for logcat info)
by flashing your device you can make your phone act differently, look different, and enable new or disabled options. you could ,for example:
enable native tethering
enable call recording
change the look of your phone
add custom toggle buttons
overclock or undervolt
increase battery life
Kernel vs Rom vs Recovery vs Modem
Kernel is the layer between the phone hardware and the rom. it controls things like Wi-Fi power, touch sensitivity, possible range of screen brightness, phone logging, and processor max and min speed. kernel must be designed not only for your device but also for the type of rom you are using (Sammy rom or Aosp) some kernels support all roms, others are specific.
Rom is the operating system of your phone. there are three main categories of roms.
roms that are based off of the Samsung stock rom (Sammy rom)
roms that are based off of Android open source project aka AOSP (AOSP, AOKP)
roms based off of the miui project (these used to be a branch of AOSP but recently they have also used Sammy base for miui)
recovery is a partition that you can access at boot by holding down a combination of keys. (volume up and home button in the case of our sgs3) every phone has recovery stock but it doesn't do much. you can replace stock with clockwork mod recovery which is extremely useful for flashing all kinds of things and making backups before you do. There are other alternative recoveries besides clockwork but that seems to be the most common. TWRP is also gaining popularity these days, especially on the sgs3. You can easily switch between recoveries and or upgrade your current recovery. All that needs to happen is for a new image to be flashed onto the recovery partition. See the rooting guide for more info on how to flash a custom recovery.
modem is a file that controls the cell radio of the phone. helps determine what frequencies to use and settings for a particular network. It is important when flashing a radio that you flash a radio that is for the AT&T sgs3 as flashing the radio from another carrier has been known to cause problems with the IMEI
Methods for flashing files - Odin vs mobile Odin vs. clockworkmod(cwm) vs adb
Odin is the internal Samsung tool for flashing. I believe it only exists on Windows platform. This tool is mostly used to initially flash an insecure kernel or rooted kernel, OR to return to completely stock rom. This tool can effect your flash counter (see below). Files for flashing in odin generally should end in .tar or .tar.md5 although sometimes they come zipped and the tar is inside the zip. Read more about Odin before using it as it can easily break your phone. !!!as a general rule make sure you never check the "partition" checkbox EVER!!!
Mobile Odin is a phone based version of Odin made by the very talented developer Chainfire. It can be installed on a rooted phone and used to flash the same .tar based files as the desktop version. Mobile odin has a few advantages. 1 you can use it from your phone. 2 it does NOT effect the flash counter on your phone, 3 it can auto root a stock rom (nice if you want to try out a brand new update that has not been rooted yet)
clockworkmod(cwm) is recovery based tool that can make backups of your entire phone, flash new roms, kernels etc.., and do many other useful tasks. Once you have this on your phone my guess is that most of your flashing will be done through this tool. The files for flashing through clockworkmod are .zip files. Clockworkmod will NOT effect your flash counter.
ADB is the android develpment bridge. It allows for command line interface with your phone through it's debugging options. ADB can do most anything as I understand it. In my several years of flashing I have only had to use it once, and i could have waited for someone to come up with another solution. In general as a noob i recommend you stay away from ADB.
open source vs Samsung based roms vs miui
Open Source Roms such as AOSP/AOKP are built using Google's open source android code as a base. The developers then add functionality specific to the device. The advantages of these builds are that they often have tons of options built in to the rom that change the behavior and look of the phone. They usually allow you to change the toggles in your notification pull down, change the battery display, make all kinds of adjustments to sounds, vibration etc... Some people also prefer the "vanilla" android look and feel. These roms often provide "bleeding edge" concepts, design, and modifications. The Disadvantages of these roms is that some of the hardware coding is done closed source by the phone manufacturers, which means that things like bluetooth, camera, video recording, and MHL video out often don't work or take much longer to get working by the developers. Basically anything that relies on the Samsung framework will not work in an open source build. This means Svoice, Snote, and the Samsung camera app will not work.
Samsung based roms are taken from the Samsung original phone software and modified by the developer. Usually, these roms are modified in order to be faster and to make changes to some of the features. Expect to see changes to the stock rom like: debloated (ATT and samsung software removed), de-odexed (explained later), enable tethering, unlimited sms recipients, added notification toggles, etc. Most of these changes are made to: make the phone faster, improve battery life, make the phone easier to theme. The advantage of these roms is that they still use the Samsung framework so all the proprietary stuff like camera, bluetooth, MHL still work, the disadvantage is that they will never be as customisable as open source roms.
MIUI is a rom that focuses on theming. Official MIUI (Chinese) gets updated weekly on Friday and then there are lots of miui developers who adapt it to other languanges and make some tweaks to it. MIUI can be built from AOSP source or Samsung source and depending will have different features. The first MIUI rom for our phone just appeared in these forums and it is based off of AOSP. MIUI has a unique look and is also highly customizable through theming. There are tons of themes available for download through the rom itself and you can mix and match any part of any theme you want. This includes icons, lockscreen style, etc.. Some people criticize while others praise MIUI for being very "iphone like". This is because the icons look more iphone like and there is no app drawer in the MIUI launcher. However, you can still use any launcher you like within MIUI.
odexed vs de-odexed
odexed is how the phone comes stock from Samsung. Odexed means that system files and apps are split into two pieces and kept in different places on the phone. This is done to speed things up a bit. However, it makes it harder to theme the phone because the apps are split up. Most custom roms choose to de-odex (basically regroup the files back into one) so that custom themers can make themes more easily for the phone.
download mode and recovery mode how to access
(Copied from mskip and his toolkit thread here: http://forum.xda-developers.com/show....php?t=1746665)
How to get into Download Mode (For Odin)
1. Unplug the USB cable.
2. Shut down the phone.
3. Hold down the 'HOME' + 'VOLUME DOWN' buttons and press the 'POWER' button for about 2 seconds until a WARNING! Screen appears. Press the 'VOLUME UP' button to enter Download Mode.
How to get into Recovery Mode
1. Unplug the USB cable.
2. Shut down the phone.
3. Hold down the 'HOME' + 'VOLUME UP' buttons and press the 'POWER' button for about 5 seconds to enter Recovery Mode.
STEP BY STEP how to flash your phone for the first time
A. get root
first off, you need to gain access to the root of your phone. there are several ways to do this (thanks to all the talented devs).
I recommend using mrRobinson's method as it will not trip the flash counter on your phone.
1. you will need to have odin from here http://forum.xda-developers.com/show....php?t=1722686 remember to hit the thanks button, download and install odin.
2. Kies (on Windows, not on your phone), Samsung's sync program, can interfere with Odin. Either make sure Kies is closed and close it out of background processes using the task manager in windows...or better yet, uninstall it completely.
3. make sure you have the proper samsung drivers installed. you can get the USB drivers directly from Samsung here: http://www.samsung.com/us/support/ow...SGH-I747MBBATT
4. you need to download the right image from mrRobinson's thread. to find out which one hit the menu key from your home screen, select system settings, select about phone at the bottom, and look for the build. it should be either UCALEM or UCALG1. Once you know, go to mrRobinson's thread here http://forum.xda-developers.com/show....php?t=1739426 download the matching image, and dont forget to thank him.STEPS 5-7 COPIED FROM mrRobinson's THREAD
5. Extract the .tar file from the .7z file you just downloaded from the thread in step 4
6. Put your phone into download mode (see how above)
7. Start Odin, connect your phone to your PC, you should see the box under ID:COM change color to show your device is connected. click on PDA and select the .tar file you just extracted. Hit the start button and wait for the file to flash to your phone. When done your phone will reboot automatically. One word of warning about Odin: DO NOT TOUCH THE CHECKBOXES!!! WHATEVER YOU DO>>DONT TOUCH THE RE-PARTITION CHECKBOX!!!!B. installing clockworkmod
the next step is to get a working clockworkmod recovery on your phone instead of the default recovery. Again, there are many ways to do this and there are several different versions of CWM recovery available. I recommend using the one from Rom Manager as it seems to be compatible with most roms. Note that currently most versions of CWM can only see your internal SD card and not your external if you have one.
1. Go to the Google play store and download Rom Manager (https://play.google.com/store/apps/d...51bGwsMSwyLDNd)
2. Open Rom Manager app, flash clockworkmod recovery (first option), choose the appropriate phone..in this case galaxy s3 att, grant it superuser privileges, it should say install successful.NOTE: some users have reported not seeing the S3 ATT in the list of devices in Rom Manager...this is a bug and hopefully will be fixed. It may be that you need the purchased version instead of the free version for it to work? Not sure why this is but if it gives you trouble there are other ways to flash a recovery image. The next easiest way once rooted is to use the tool in this thread: http://forum.xda-developers.com/show....php?t=1746665 from there you can flash both cwm or twrp whichever you prefer. Alternatively you could also use goo manager to flash TWRP link to goo here: https://play.google.com/store/apps/d...omanager&hl=en
C. Test out your new recovery and make a backup of your phone
1. turn your phone off, then turn it back on while holding the Volume UP and home key. (more detailed instructions above) You should see Clockworkmod Recovery at the top.
2. Use your volume keys to navigate to the backup option and select backup, then wait for it to complete. You now have a backup of your phone you can restore to at any time.D. downloading and flashing a new rom
now its time to decide what rom to flash. when choosing a rom read the first post of the thread (the OP) carefully and take time to read through most if not all of the thread. At the very least go read the last 10 pages of the thread so you are familiar with any current issues people may be having. Once you have picked a rom:
1. Download the rom you want to try
2. Make sure that the rom ends up on your internal SD card and that you know where it is
3. Get into CWM recovery
4. As a general rule it's a good idea to wipe data/ factory reset from CWM recovery (this will wipe all your data on the phone except any photos/videos you may have taken)
5. It is also good practice to wipe cache from CWM recovery
6. Lastly, from the advanced menu in CWM choose to wipe Dalvik cache
7. now go back out to the main recovery screen and choose "install .zip from SD Card" option and navigate to your rom, select it and confirmnote that a new rom may take longer to boot the first time.
Flashing "dirty" vs flashing "clean"
Doing a clean install of a rom means erasing or formatting all the data from the previous rom before you flash the new one. This is the prefered way to flash a rom to ensure that it will run smoothly. It is necessary if you are switching from one rom type to another (CM to Samsung base). In order to do a clean flash you need to boot into recovery and select the following options: wipe user data (this wipes all apps and personal data, but not your photos/videos), wipe cache, advanced>wipe dalvik cache, storage/mounts>format system. This will ensure that no trace of the former rom is left on the phone. Beware that at this point your phone will not boot until you install a new rom. I suggest using titanium backup to backup apps and smsbackup+ for texts to make getting your new rom configured easy.
Doing a dirty install means just flashing a new rom right over the top of the old one without wiping any data. The advantage to this is that you don't lose any apps or account info. The disadvantage is that you open up the possibility for problems. Generally you only want to flash this way if you are upgrading a rom (CM10 nightly to the next nightly, or from one samsung based rom to another). If you decide to flash over the top and have any issues, you should not report bugs, but try flashing clean first.
backing up IMEI
There have been some issues with people losing their imei number when flashing roms. *It appears to be limited to the old imei software version 2 but the evidence is not yet conclusive. *If you lose your imei, you will not be able to connect properly to the data network. *Luckily some devs have figured out how to re-inject an imei number into our phone and get it working again. *It is certainly a good idea to back up your imei info before flashing just to be on the safe side. *There seems to be two main threads dealing with backing up and restoring your imei. *you can check them out here:
huge thanks go out to these devs for figuring this out!! as always make sure you thank them.
I have yet to try either of these methods out myself so if one seems much easier or clearer please let me know.
tethering (for stock Samsung based rom)
you can use a mod to enable wifi tethering from your phone to up to ten other devices and share your data connection. If you are running a custom rom you probably already have this enabled and don't need it. It is already included in any AOSP roms also.
Make sure that you use the version of the mod that is for your software version number (UCLEM or UCLG1 see beginning of rooting guide to figure out which one you are on).
The original mod for UCLEM is here: http://forum.xda-developers.com/show....php?t=1732262
The mod for UCLG1 is here: http://forum.xda-developers.com/show....php?t=1768826
The Flash Counter
The flash counter is an internal counter that ticks every time you install a non-samsung firmware through Odin. This allows Samsung or AT&T to see if the phone has been flashed with custom roms. custom recoveries such as Clockworkmod and TWRP as well as the mobile version of Odin DO NOT change the counter. Only flashing non-Samsung files through the desktop version of Odin does. You can see your flash counter when you enter download mode on your phone. Luckily, Chainfire has developed an app that allows this counter to be reset, so there is really little concern anymore about having the counter trip. If you do need to send your phone in for repairs, you will want to reset the counter and then flash an unmodified stock rom through odin to get your phone back to factory state.
Link to Chainfire's app through this post here: http://forum.xda-developers.com/show....php?t=1800878
Logcat is a way to access the android system log for everything that is going on behind the scenes. This tool is used to help developers pinpoint problems in a rom. If you want to actually be helpful to a dev when reporting a bug, you should really learn to use this tool. I am no expert on logcat but you can find some good information in this post: http://forum.xda-developers.com/show....php?t=1726238
This is the apn that comes on stock at&t phone. It allows you to connect to LTE as well as hspa+
Name: ATT PTA
MMS Proxy: proxy.mobile.att.net
MMS port: 80
APN type: default,mms,supl,hipri
NOTES BELOW ARE COMING SECTIONS. Feel free to pm me questions you would like to see answered or suggestions for other info:
returning to stock
What info is stored in each area: system, data, cache etc...