help to edit Rom - Galaxy S 4 Q&A, Help & Troubleshooting

What files do not change in the rom ?? Or what files can you change ?? For example , I have a phone version android 4,4 and want to become like 6.0 without downloading a new ROM just change some files until the interface change and statut bar and menu parametrs Plzz help me And what is the role of each files of system file
etc
Usr
Media
App
Framwark
Vondor
...
:crying:

This may or may not be relevant, but should be sufficient to describe the amount of work involved in theming.
The Dell Streak ran Android 2.3.x when it reached its end of life. At the time I had gotten my S4 I was the last person doing any actual work on the device. One of the things I made for that device was a theme named "Traveller ICS". Its goal was to port elements of the new (at the time) Holo styling in Android 4.0 to the older version of Android. A LOT of files were edited to make this happen, as all of them had drawable elements that needed changing.
F:\system\app\Browser.apk
F:\system\app\Contacts.apk
F:\system\app\DellSettingsProvider.apk
F:\system\app\DeskClock.apk
F:\system\app\Email.apk
F:\system\app\Gallery3D.apk
F:\system\app\Mms.apk
F:\system\app\Phone.apk
F:\system\app\Settings.apk
F:\system\app\SettingsProvider.apk
F:\system\app\SystemUI.apk
F:\system\framework\framework-res.apk
The included text file below lists all the files in just one of the apps listed above. Not every file will need to be altered, but virtually all the images will need to be changed, and more than a few XML files. The point of the matter here is that it is not an easy task to re-theme the whole of Android to look like Android 6.x. It's a lot of work, and given the existence of substratum, not worth the effort.
Change ROMs. Hard-coded theming of Android is a *****, and you don't want to do it if you don't have to.
EDIT: Please note, if you are attempting to modify a Touchwiz ROM to look like later versions, I don't know whether it's possible or not, but I seriously wouldn't try it with the Touchwiz framework either.

Strephon Alkhalikoi said:
This may or may not be relevant, but should be sufficient to describe the amount of work involved in theming.
The Dell Streak ran Android 2.3.x when it reached its end of life. At the time I had gotten my S4 I was the last person doing any actual work on the device. One of the things I made for that device was a theme named "Traveller ICS". Its goal was to port elements of the new (at the time) Holo styling in Android 4.0 to the older version of Android. A LOT of files were edited to make this happen, as all of them had drawable elements that needed changing.
F:\system\app\Browser.apk
F:\system\app\Contacts.apk
F:\system\app\DellSettingsProvider.apk
F:\system\app\DeskClock.apk
F:\system\app\Email.apk
F:\system\app\Gallery3D.apk
F:\system\app\Mms.apk
F:\system\app\Phone.apk
F:\system\app\Settings.apk
F:\system\app\SettingsProvider.apk
F:\system\app\SystemUI.apk
F:\system\framework\framework-res.apk
The included text file below lists all the files in just one of the apps listed above. Not every file will need to be altered, but virtually all the images will need to be changed, and more than a few XML files. The point of the matter here is that it is not an easy task to re-theme the whole of Android to look like Android 6.x. It's a lot of work, and given the existence of substratum, not worth the effort.
Change ROMs. Hard-coded theming of Android is a *****, and you don't want to do it if you don't have to.
EDIT: Please note, if you are attempting to modify a Touchwiz ROM to look like later versions, I don't know whether it's possible or not, but I seriously wouldn't try it with the Touchwiz framework either.
Click to expand...
Click to collapse
First thank you for helping me I downloaded the ROM S8 and installed it on the S4 by adding the files after the ROM S4 I understood my intention. But if there was a danger on the phone, tell me before spoiling the concert Change CPU values

Sorry, but you're going to have to figure that out on your own, because I don't have an answer to that question.

Strephon Alkhalikoi said:
Sorry, but you're going to have to figure that out on your own, because I don't have an answer to that question.
Click to expand...
Click to collapse
I am randomly asked because when I search I find edits on ROM cyanogenmod but I want to modify the ROM on an official
For example, I already have S4 on Android 6.0.1
Port ROM note7
I meant to download rom note7 edit to fit my phone

Related

Android Theme Switcher

With the availability of different Android themes for the Vogue version of it, I am wondering how difficult it might be to create a program that can switch themes like we can with the Manilla2DConfig? It seems possible in my head so I think we can figure this out together.
Any takers? Any ideas?
Thanks!
Reserved...
There already is one. I've made this suggestion before. Dev's post what base build you're using, than people can use metamorph to apply any of the supported themes from the android themes forum.
I think it's a great idea however there are a few technicalities that may get in the way.
1) Different builds have different frameworks. In the Android Themes forum most of the themes are specific for a particular ROM, usually at least Cyanogenmod. If you were to take a theme from cyanogen and drop it into our builds it wouldn't boot .
2) The problem in #1 lead to the evolution of MetaMorphing. This is a dynamic method where specific resource files are injected into the associated existing framework and applications. Unfortunately not alot of the themes are there yet. To have MetaMorphing work well the target ROM should really have no odex files (completely de-odexed). Some of the more modern vogue roms are deodexed but some aren't.
myn said:
I think it's a great idea however there are a few technicalities that may get in the way.
1) Different builds have different frameworks. In the Android Themes forum most of the themes are specific for a particular ROM, usually at least Cyanogenmod. If you were to take a theme from cyanogen and drop it into our builds it wouldn't boot .
2) The problem in #1 lead to the evolution of MetaMorphing. This is a dynamic method where specific resource files are injected into the associated existing framework and applications. Unfortunately not alot of the themes are there yet. To have MetaMorphing work well the target ROM should really have no odex files (completely de-odexed). Some of the more modern vogue roms are deodexed but some aren't.
Click to expand...
Click to collapse
Actually that depends what you use as a base for your build. I've used super D, and cyanogens builds in the past as a base, and it works no problem with metamorph.
As well odex'ed builds are still metamorph compatible, I've done it myself
Again, I know this works because the build that I was distributing was compatible totally with cyan's base rom and therefore and metamorphs for cyans worked

[Q] Nexus 7 Rooting Questions [IMPORTANT]

Hey fellow former's I have a few questions take time to answer them in a understandable manner. Thank You!
(These questions all involve after rooting my nexus)
1. What is a theme chooser? Is it similar to an the Ipods Winterboard?
2. Would I use device explorer to edit my ROM?
3. Are themes the same thing as a ROM since the change how the device looks/ performs?
4. What is Team Win Recovery Project and ClockWorkMod and what are the used for?
5. What cool ROM would you recommend for me?
Thank you for your time and AMAZING support! You guys rock :good:
Hippxl12345 said:
Hey fellow former's I have a few questions take time to answer them in a understandable manner. Thank You!
(These questions all involve after rooting my nexus)
1. What is a theme chooser? Is it similar to an the Ipods Winterboard?
2. Would I use device explorer to edit my ROM?
3. Are themes the same thing as a ROM since the change how the device looks/ performs?
4. What is Team Win Recovery Project and ClockWorkMod and what are the used for?
5. What cool ROM would you recommend for me?
Thank you for your time and AMAZING support! You guys rock :good:
Click to expand...
Click to collapse
1. It customizes the look of the device; sort of.
2. No.
3. No.
4. Recoveries that you can boot into; flashing ROMs.
5. CM10.
If you want more detailed info, search for it, it's literally all over XDA.
Question 2
Explain number 4 a little more and tell me what a flashing rom is please
lol. Those were some pretty short answers.
A ROM is the operating system of the phone. Android is open source so anyone can customize the OS and make changes. Those can be performance changes, having certain apps installed by default (or removed in most cases since cell companies load Android phones with so much crap), visual changes by modifying the stock theme, or complete re-writes as is the case with MIUI. If you like iOS then you would probably feel very at home moving to an MIUI based ROM
A Theme can usually be installed onto any ROM and it just modified the way the OS looks.
The recovery is where you boot the device into in order to flash a custom ROM or kernel, or some system apps, or things like that. You use TWRP or CWM as a replacement for the limited and locked down stock recovery that the phone/tablet comes with.
Be sure to look at what features come with a ROM before deciding. Many early ROMs are labelled as alpha or beta builds and usually contain lots of bugs and have missing things and some areas that dont even work at all. Nexus devices usually dont have alpha ROMs though since they work 100% with Google source and have no cracking to do because nothing is locked down at all.
Help
By recovery what do you mean like revert it back to factory setting what is it used for, thank you for good awnsers! btw

[Q] Making app compatible with older Android version?

I'm new to the forums and a novice programmer but here's my question:
There's an app I'd like to run on my device for work. Per the play store, the app requires Android 2.3.3 and I'm running 2.2.2. I'm running the most recent version of a custom ROM on an outdated device so can't update my device's build.
I'm wondering if it's possible to tweak the app's source code and repackage it to make it run on my device. I have downloaded the .apk file and tried to install it on my phone and get a parsing error. So with the help of google I have managed to get into the source code using dex2jar and jd-gui. Problem is I don't know much about how apks are written. I found something in the 'accessibilityservice' area that seems to check the android build version, but as far as I can tell that is checking for whether the device is running ICS (if build >= 14) whereas the app is said to be compatible with older builds as well.
Anyway - how complicated would it be to port an app backwards so that I could run it on my phone? You should assume that I'm already in over my head.
Thanks.
petegw42 said:
I'm new to the forums and a novice programmer but here's my question:
There's an app I'd like to run on my device for work. Per the play store, the app requires Android 2.3.3 and I'm running 2.2.2. I'm running the most recent version of a custom ROM on an outdated device so can't update my device's build.
I'm wondering if it's possible to tweak the app's source code and repackage it to make it run on my device. I have downloaded the .apk file and tried to install it on my phone and get a parsing error. So with the help of google I have managed to get into the source code using dex2jar and jd-gui. Problem is I don't know much about how apks are written. I found something in the 'accessibilityservice' area that seems to check the android build version, but as far as I can tell that is checking for whether the device is running ICS (if build >= 14) whereas the app is said to be compatible with older builds as well.
Anyway - how complicated would it be to port an app backwards so that I could run it on my phone? You should assume that I'm already in over my head.
Thanks.
Click to expand...
Click to collapse
A LOT of things changed from pre-2.3 to 2.3 in Android, code-wise. It was a huge upgrade, and a lot of unsupported things were implemented.
It's set to run on 2.3.3 simply because it uses functions that only exist in 2.3.3 and higher.
So to backport it you'd need to get the source code, check what functions require 2.3.3 or higher, edit them to use other functions/write the code yourself. You can't just simply remove the code that checks what version of Android you're running. That won't do a damn thing.
The last part is the near impossible one, because you'd most likely have to write code that goes deep into the Android framework.
If i were you, i'd simply look for another app that can do what you need and doesn't require 2.3.3 or higher. Though there aren't many out there. Most people base their app on 2.3.3 because like 95% or higher use that version (or a higher one).
If you were to dive into this, you'd need extensive knowledge of Android, Java & backporting.
Though i'm not able to help with that, at least the backporting part.
Moonbloom said:
A LOT of things changed from pre-2.3 to 2.3 in Android, code-wise. It was a huge upgrade, and a lot of unsupported things were implemented.
It's set to run on 2.3.3 simply because it uses functions that only exist in 2.3.3 and higher.
So to backport it you'd need to get the source code, check what functions require 2.3.3 or higher, edit them to use other functions/write the code yourself. You can't just simply remove the code that checks what version of Android you're running. That won't do a damn thing.
The last part is the near impossible one, because you'd most likely have to write code that goes deep into the Android framework.
If i were you, i'd simply look for another app that can do what you need and doesn't require 2.3.3 or higher. Though there aren't many out there. Most people base their app on 2.3.3 because like 95% or higher use that version (or a higher one).
If you were to dive into this, you'd need extensive knowledge of Android, Java & backporting.
Though i'm not able to help with that, at least the backporting part.
Click to expand...
Click to collapse
Thanks for the very helpful information. I will definitely not be attempting this.
Most likely will be getting a newer phone in a few months when I'm due for an upgrade so it'll be a moot point. Until then, I'll get by.

How to have official DocumentFile restrictions on Roms?

Hello all,
Starting of Android Lollipop (5.x), Google presented an official API for accessing the SD-card (among other things) called "DocumentFile" or SAF.
It's quite a restricted API compared to File, but that's the official way to use files.
Yet, up until now, because the File API was used for all apps, rom developers always chose to allow File API to be used and work even for SD-cards.
While this is nice for power users and maybe people who don't care about it, this is bad for me as a developer, because I need to have those restrictions (of forcing me to use the DocumentFile instead of File) as they exist on real stock roms.
It's not just me, but I've found a lot of apps out there that don't use the official API at all. Even "Total Commander", an app I'm still using, can't fully use it, as when I ask to send multiple files to it using DocumentFile, it fails.
Sadly, other than the real stock rom of Samsung (and not those based on them, or of course those like CM) , I can't find any rom that when using File API - it won't let me modify the sd-card files.
Now that Android 6 is coming, I think it might get even weirder, as there will be a new permission mechanism for storage.
My question:
Is there any rom or anything I can easily do (i'm not a rom developer) to have near-stock experience in terms of accessing the SD-card?
I hope I'm clear on this. English isn't my main language, so I've tried to find alternative ways to express what I want to talk about.
Maybe one of the GPE roms around here. But those are only for the GT-I9505 model.

Porting modern TouchWiz: Notes from me

Today I wanted to talk about porting current versions of TouchWiz from one device to another. This will be focused primarily on the Sprint network capability since that is my current carrier. But these same basic steps will apply for all porting of TouchWiz.
I know several people have ported roms but I first want to point out one important fact. There is ABSOLUTELY no "guide" that can help you port TouchWiz roms successfully. Period. Any "guide" thread that you may find is completely useless and is isn't even close to touching on the key components of today's porting methods. So don't waste your time reading guides because they are very outdated and irrelevant today.
First things first... When deciding to port a Samsung Rom you need to understand that there are going to be different chipsets for the different device models used in other parts of the world. With this in mind you need to choose software that was originally designed for the same similar cpu whether it be Exynos or Qualcomm. This makes a huge difference when it comes to cpu configs that will best support your device's cpu. If you try to port an Exynos rom to work on a Qualcomm device then expect to have to do a lot more work in framework, etc.
GSM vs CDMA is another very important part of the porting process. When possible, ALWAYS choose software that supports your specific carrier and service type/technology!!! If you are on a GSM network then choose a GSM rom and same for CDMA. However CDMA technology here in the US is a bit different from other countries in regards to how it is setup in the software. Each CDMA carrier will have it's own unique code inside system files. Simply replacing csc and other files will do NOTHING to fix this, leaving you with either no data services or improper generic data services. The only way to do this right is to either start with software for your specific carrier or manually modify these values in multiple files throughout framework and system using the correct values from software specific for your carrier. No exceptions.
The other thing. You ideally want to port the same Android version that is currently available for your specific device because the original kernel and libraries, etc need to support the version of Android in which you want to port. When porting you will be using most of your original software's bin files, kernel, etc... so these files need to be compatible with the version of Android you want to port. Very important!
I will not go into great details with smali modifications, etc because that is a whole different animal. This thread is a general breakdown of what is involved in the whole process. Porting a ROM such as the Note 7 software is no simple task, especially with so many unknown obstacles that must be discovered then remedied. You will need the right tools for the job before you even take on such a task. I'm talking about ApkTool, smali/baksmali, mad genius mentality, etc. Without the proper tools forget about it.
The main things that must be done for the rom to even boot, reside internally inside a few framework jar files. There will also be incompatible system files which must be removed and/or replaced with compatible versions that support your specific device/model. You also may need to make the rom support 32bit such is the case with the Note 4, since it is only 32 bit compatible. There can be no traces of 64bit libraries either inside the system apps or the library folder or else you will have issues. 32 bit devices cannot process 64 bit libraries, whether external or imbedded inside system apps. The one exception to this rule is when an app is multi-arch compatible which means the app can be installed on either 32 or 64 bit devices. In this case the 64 bit libs can remain although they will not be used since the 32 bit libs will be detected by the os. Thankfully 64 bit TouchWiz contains 99.9% of the necessary 32 bit libraries! So use them instead if your device is only compatible with 32 bit architecture.
There are several key Android/Samsung services that are not going to be compatible with other Samsung devices therefore one must identify these incompatible services and other methods in smali and either remove them or recode them in order for the rom to function in a way that is compatible with the device for which you will be running the software on. Sometimes you can simply replace services from your original device's software as long as it is compatible and from the same Android version, but not always.
There is NEVER going to be a set of instructions that will apply to all ROMS. Period. This stuff is always ever-changing with each update that Samsung releases. This is why there can be no accurate "guide" to porting TouchWiz. Whoever says otherwise is not knowledgeable on this stuff at all.
Once the framework files are prepared and rebuilt properly then you will need to have knowledge of the stock system apps and what role they play in the software. Most system apps are cross compatible but some are device and/or carrier specific and must either be removed or replaced in order for the rom to boot and run without a complete meltdown with continuous FC's. Then you have CSC (customer service codes). This plays a major role in how the software will be setup on initial rom setup. Each specific device model will have it's own unique CSC, however most of Samsung's current CSC is identical between the current available top tier devices such as the N4, N5, S7 and N7. BUT each device will have it's own unique "values" within multiple files in CSC. Some Samsung devices are compatible with features that other Samsung devices do not support. Therefore you must have knowledge of this and make the necessary edits in order for the software features to be setup correctly without major malfunctions. One wrong value can actually cause the rom to not boot. You will need experience with this as well.
Next you may need to slightly modify the kernel's ramdisk to support a couple of additional framework files which is the case with the N7 software and probably the N5 as well. It's just a matter of adding a few file names to a text file, save, then recompile the zimage and place the modified kernel inside your rom zip. These types of things must be discovered by trial & error by people who are knowledgeable and have experience porting roms. But it goes to show that these little things can determine a successful or failed port. You never know what can cause the rom to not boot. There's so many pieces to the puzzle when porting.
Moving on to the build.prop and updater-script. There MUST be a lot of edits done to the build.prop and the same principal applies here. You MUST edit the build.prop in order for it to support the software AND your specific device model, cpu, security features, etc, etc. This is an art folks. Again... there is no "guide" for doing this properly. You must possess the mental aptitude to tackle this stuff. It's not for normal people The updater-script is a VERY VERY important part of the rom porting process because it contains the permissions and symbolic links for all of the critical system files and folders. You must manually edit the updater-script so that it sets the proper permissions and symbolic links for the files that are used in the current software you are going to run. You cannot simply use a stock device updater-script straight out of the kitchen for your specific device. It will not work due to other versions of TouchWiz will likely have additional or different files and folders in the rom. This will take a LOT of time to go over everything and make sure you covered everything and properly setup the updater-script.
Next there is the process of replacing critical and device specific libraries and bin files as well as kernel modules. Generally for Samsung devices, system/bin folder must contain all of the original files from the original stock software for your specific device. You might need to add additional files from the software you are porting. The same applies to the system/lib/modules. These modules MUST come from your device's original software. The libraries are very tricky because not all libraries can be from either your original stock software nor from the software you are porting. Simply put, this is going to be the single most time consuming process with a ton of trial and error. You must figure out which lib files must be used from your original software and which libs must come from the new ported software. Good luck figuring this out! :laugh:
This pretty much covers the initial areas of the system software that must be manually modified in order for the rom to actually boot.
As you can see, there's a lot of trial and error with porting roms. Believe me. Other people who ported the early N7 and S7 port ROMs have done a LOT of work and surely they have a lot of trial and error. These early port dev's deserve a lot of credit for these early discoveries without a doubt. Without their original trials and errors & hard work, there would be no other port roms. They shared their knowledge and it was a group effort in the beginning. You guys know who you are! :highfive: Much Thanks to all of you who figured out framework issues etc in the early stages of current TouchWiz. I learned a lot in this process in which I have never shared with the public simply because there's no point in giving information that others can't use due to lack of experience. Hopefully some people will read this and better understand what goes into porting these ROMs. At a later dat, I may write up a more detailed "guide" on current TouchWiz IF I feel there is a need and there is enough people willing to step up and help out the community in the future. This is the way XDA works. You have to pass the torch to win the race. No one person can conquer the world. Teamwork is the key to success in everything you do. Remember this. Thanks for reading.
Wow, very nice write up. Thanks!
I would be interested in a more detailed guide if and when you get to it. I'm always looking to expand my know - how.
Many thanks! :highfive:
Thanks for the post....
but you did not go in to ROM porting much at all... I'd love to read a in depth view of the " copy and paste " dev .
tx_dbs_tx said:
This will be focused primarily on the Sprint network capability since that is my current carrier. But these same basic steps will apply for all porting of TouchWiz.
GSM vs CDMA is another very important part of the porting process. When possible, ALWAYS choose software that supports your specific carrier and service type/technology!!! If you are on a GSM network then choose a GSM rom and same for CDMA. However CDMA technology here in the US is a bit different from other countries in regards to how it is setup in the software. Each CDMA carrier will have it's own unique code inside system files. Simply replacing csc and other files will do NOTHING to fix this, leaving you with either no data services or improper generic data services. The only way to do this right is to either start with software for your specific carrier or manually modify these values in multiple files throughout framework and system using the correct values from software specific for your carrier. No exceptions.
The other thing. You ideally want to port the same Android version that is currently available for your specific device because the original kernel and libraries, etc need to support the version of Android in which you want to port. When porting you will be using most of your original software's bin files, kernel, etc... so these files need to be compatible with the version of Android you want to port. Very important!
Click to expand...
Click to collapse
This was great. It was exactly what I was looking for. Ive being working on porting a gsm rom to my device N900P. But the only thing Ive found is copy and paste. Trying to find something on cdma is even harder. Ive just download your Ultimate Hybrid N7 to see if can get a clue on where to start. Deodexing telephony-common should be enough? Where else should start looking? If you could point me a direction would be great. Thanks
triskaw said:
This was great. It was exactly what I was looking for. Ive being working on porting a gsm rom to my device N900P. But the only thing Ive found is copy and paste. Trying to find something on cdma is even harder. Ive just download your Ultimate Hybrid N7 to see if can get a clue on where to start. Deodexing telephony-common should be enough? Where else should start looking? If you could point me a direction would be great. Thanks
Click to expand...
Click to collapse
Sorry for the late reply. To be honest, porting a gsm rom to work on a U.S. cdma carrier is going to require massive work. Forget about it. Start your rom project with cdma compatible software and save yourself the trouble. You'll win the lottery before you get a gsm rom ported over to cdma. Copy and paste isn't going to scratch the surface. Why not port a factory Sprint ROM for your Sprint note 3? Such as the Sprint N7, N5, S7 edge? It is already setup to work on the sprint network. It would save you a lot of time and effort.

Categories

Resources