Home » Where can I find stock or custom ROMs for my Android device?

Where can I find stock or custom ROMs for my Android device?

Solutons:


Manufacturer Websites

While they don’t usually host ROMs directly(exceptions include Samsung), you may find that they have software useful for upgrading stock ROMs, such as Samsung’s tool Kies. If you want to upgrade and stay stock then you should try official methods first.

Google Flagship Updates

Google hosts update packages for the flagship Nexus and Pixel devices at

https://android.clients.google.com/packages

You can’t browse that link directly, but web search is your friend here. Search for that link plus the code name of the device and the version you want; for example, searching android.clients.google.com/packages crespo ics results in a lot of pages with [this link][n1] — the OTA Ice Cream Sandwich update for the T-Mobile Nexus S. Links for various “factory images” for Nexus devices can be found here.

XDA Forums

Probably the first place you should look after trying the official route is the XDA Developers’ forums. Stock ROMs are usually posted in the General sub-forum for your device, and custom ROMs in the Android Development sub-forum for your device. No guarantees.

They don’t have dedicated subforums for all devices, so if you have a less-popular device you should use the site search instead of the subforum search.

RootzWiki Forums

You may or may not want to check RootzWiki before XDA Forums above. Developers tend to move from forum to forum and RootzWiki provides devices for the best developers so a lot have jumped on board.

They have sections for many devices and for those that don’t there is a General section. The forums tend to be divided into 3 sections per device (not always): General, Development (ROMS and such) and Themes.

ROM Manager

Many developers publish their custom ROMs in ROM Manager and even provide OTA-style updates through it. Naturally, these ROMs can be easily flashed through ROM Manager / ClockWorkMod Recovery as well.

Android Forums

This site often has ROMs for more obscure devices, as well as the popular ones.

PDADB

This site provides a long list (about 800 pages) for all kind of devices, including Android, Blackberry, Symbian, and more. It misses a filtering mechanism, unfortunately…

TheUnlockr

Grouped by vendor, then device. Seems to be quite up-to-date and quite complete — for sure one of the best resources.

Android @ MoDaCo

Similar to Android Forums.

SamMobile

This site posts stock Samsung ROMs from all over. It does require you to sign up.

Note: you may need to register an account before downloading. If not, then the “Download” button is just point to the register page, and no actual file is downloaded.

Google

When in doubt, do a web search. Make use of quotes (e.g., "vibrant" "stock 2.2.1") in order to narrow the results and find what you need.

Shipped Roms

A collection of shipped ROMs. Contains ROMs for 40-odd devices.

MIUI

Translated from a popular Chinese ROM, MIUI is a highly customized version of Android with a large base of customization and theme options and a strong iOS aesthetic. Available for many devices and in Froyo (2.2), Gingerbread (2.3), Ice Cream Sandwich (4.0), Jelly Bean (4.3) options.

AOKP

Android Open Kang Project (AOKP) is just like Cyanogen Mod (CM) a Android Open Source Project (AOSP) based ROM. AOKP focuses on providing extensible settings with the disadvantage that less devices are supported in comparison with CM.

Samdroid Board

If you have a Samsung device and you want to unleash the potential of your device then this is the place to go for information, tutorials, files, firmware and many surprises! Many top devs in the industry and talented people frequent and maintain many useful threads on this forum based site.

Android Central

Another popular Android forum, similar to XDA and RootzWiki.

OmniROM

Similar to CyanogenMod, OmniROM is a committed open-source project that provides ROMs for a variety of devices.

Replicant

Similar to OmniROM, Replicant is a committed open-source project that provides ROMs for several devices (mostly Samsung). It is a fully free Android distribution (with a marked aversion to binary blobs), putting the emphasis on freedom and privacy/security.

Lineage OS

Lineage OS is the successor to CyanogenMod(in the sense that the numbering scheme matches only). It allows for customization of the buttons at the bottom of the screen and for root access.

Flashtool for Sony Xperia

Flashtool provides inbuilt tool – “XperiaFirm” that lets you download the stock firmware for Xperia devices. Using flashtool you can even install the downloaded firmware onto your Xperia device.

Custom Roms, Stock roms, Leaked Roms, Kernels, and how to guides.(For Korean and other Popular devices you can look for custom roms here.)

Tinhte

A vietnamese forum that mostly contains roms for Korean versions of LG,Samsung and other HTC devices.

BBS Gfan

A chinese forum with a very big collection of roms for every device that you can think of.

Note: use the search funtion.

NeedROM

The website provide Original & Custom ROMs for more than 65 brand (mostly Chinese). In addition it contains very useful Tools with their latest updates.

MTK Firmware

Contains a lot of MTK based brands (Mostly Chinese), Tools and drivers also are available there.

Android MTK

Similar to MTK Firmware.

Related Solutions

Why not drop the “auto” keyword? [duplicate]

Your proposal would be rejected on the basis of backward compatibility alone. But let's say for the sake of argument that the standards committee like your idea. You don't take into account the numerous ways you can initialize a variable widget w; // (a) widget...

Recursive to iterative using a systematic method [closed]

So, to restate the question. We have a function f, in our case fac. def fac(n): if n==0: return 1 else: return n*fac(n-1) It is implemented recursively. We want to implement a function facOpt that does the same thing but iteratively. fac is written almost in...

How can I match values in one file to ranges from another?

if the data file sizes are not huge, there is a simpler way $ join input1 input2 | awk '$5<$4 && $3<$5 {print $2, $5-$3+1}' B100002 32 B100043 15 B123465 3 This Perl code seems to solve your problem It is a common idiom: to load the entire...

Javascript difference between “=” and “===” [duplicate]

You need to use == or === for equality checking. = is the assignment operator. You can read about assignment operators here on MDN. As a quick reference as you are learning JS: = assignment operator == equal to === equal value and equal type != not equal !==...

Compiler complains about misplaced else [closed]

Your compiler complains about an misplaced else because, well, there is an else without a preceding if: // ... for (j=1; j<n-i; j++) { if(a[j]<=a[j+1]) { // ... } // END OF IF } // END OF FOR else { continue; } // ... The else in your code does not follow...

Bootstrap – custom alerts with progress bar

/* !important are just used to overide the bootstrap css in the snippet */ .alertContainer { border-radius: 0 !important; border-width: 0 !important; padding: 0 !important; height: auto !important; position: absolute !important; bottom: 15px !important; left:...

How to Garbage Collect an external Javascript load?

Yes, s.onload = null is useful and will garbage collect! As of 2019, it is not possible to explicitly or programmatically trigger garbage collection in JavaScript. That means it collects when it wants. Although there is cases where setting to null may do a GC...

Math programming with python

At first, what you are looking for is the modulo operator and the function math.floor() Modulo from wikipedia: In computing, the modulo operation finds the remainder after division of one number by another (sometimes called modulus). for example: 12%12=0...

Android slide over letters to create a word [closed]

Here some advice you can use: First for each cell you can create an object that represents the state of that cell: class Cell { char mChar; int row,column; boolean isSelected; } then you can create a 2D array of your cells Cell[][] mTable = ... For views you...

Sum two integers in Java

You reused the x and y variable names (hence the variable x is already defined in method main error), and forgot to assign the ints read from the Scanner to the x and y variables. Besides, there's no need to create two Scanner objects. public static void...

Extend three classes that implements an interface in Java

Using this simplified implementation of the library, using method() instead of M(): interface IFC { void method(); } class A implements IFC { public void method() { System.out.println("method in A"); }; } As akuzminykh mentions in their comment You'd write a...

How to set the stream content in PHPExcel? [closed]

Okey, First thing first PHPExcel_Worksheet_MemoryDrawing() can't solve your problem if you insist to use stream content and pass that to your worksheet your PDF will not render your image. But you can use `PHPExcel_Worksheet_Drawing()' if you want to render...

How to remove all files from a directory?

Linux does not use extensions. It is up to the creator of the file to decide whether the name should have an extension. Linux looks at the first few bytes to figure out what kind of file it is dealing with. To remove all non-hidden files* in a directory use: rm...

Hacker used picture upload to get PHP code into my site

Client side validation The validation code you have provided is in JavaScript. That suggests it is code that you use to do the validation on the client. Rule number one of securing webapps is to never trust the client. The client is under the full control of...

First Time HTML5/CSS Site

Semantically, I would suggest using HTML5 elements more. For example, instead of... <div id="header"> <div id="logo"></div> </div> Use instead: (the ID can stay if you want it to) <header> <div id="logo"></div>...