[Galaxy S III Android Development] _alexndr:
Important notes for Developers / ROM Chefs !!!

In my "Developer Base" I TOTALLY REBUILT all permissions!

I abandoned any ready to use, OBSOLETE patterns and starded from ZERO :)

At first I installed ORIGINAL, PURE SAMSUNG STOCK via Odin, then I (cf-auto-) rooted the phone and installed Terminal Emulator.

Next step was the commands:

su
cd /system
ls -Rl > /storage/emulated/0/i9300_perm_own.txt
ls -Rn > /storage/emulated/0/i9300_num_own.txt

By above commands I wanted to see ORIGINAL permissions and owners which are set by SAMSUNG DEVELOPERS. I noticed that many of them DIFFERS from currently available OBSOLETE patterns!

Received files:

i9300_perm_own.txt

i9300_num_own.txt

(in Windows - open it with Notepad++)

As a result of its (very arduous) analysis I created COMPLETELY NEW list of permissions and SElinux contexts - dedicated for Samsung JellyBean based custom ROM. For more information - see

THIS THREAD

(in hidden content). The only difference in THIS ROM is not using SELinux context (set_perm instead of set_metadata) due to disabled SElinux mode in stock JellyBean Samsung kernel for I9300. It gives us a very clear (tuned and nuanced), PROPER updater-script :D

Of course - setting the SELinux context does not cause problems in case of stock based custom ROM for Galaxy S3, but at this moment it is unnecessary ;)

NOTE: At this moment I do not recommend using dsixda kitchen by beginners due to many potential problems (in automatic mode) - loss most of symlinks outside /system/bin (for example in /system/lib, /system/fonts etc), very otdated rooting procedure and very obsolete default permissions. Let's say it clear - dsixda kitchen is still OK but requires more and more knowledge (many operations must be done manually). If you are beginner - it would be much better if you use ArchiKitchen

EDIT (2014.09.20): Starting from my GNH4 DevBase (built Sep-20-2014) you theoretically do not need any kitchen (in case of using my ROM as a base/pattern). Note that in my DevBase there are my scripts to add almost everything you need: root / busybox / init.d support + my flexible Aroma config for optional steps and MODs. I'm not trying to say "do not use the kitchen". ArchiKitchen is excellent, but be careful - in case of using my DevBase you can inadvertently perform unnecessary steps (e.g. ArchiKitchen will detect that my ROM is: not rooted, no init.d support nor BusyBox installed!). If you perform such steps using ArchiKitchen - in the best case you will double some operations during installation process (but in the worst case - it may cause real problems and conflicts!).

Hello :)

I have decided to create a pure base for I9300 with Aroma Installer, which can be a pattern for ROM Chefs (not only for beginners) :D

Also I put some of my favorites MOD's (option to choose in the Aroma Installer) - especially for normal users who want to use my rom - as it is. These modifications I have done personally using Apktool 2.0 - these are NOT "borrowed" from other custom rom, nor from someone else's thread.

ROM contains my extended CSC package, which I called I9300AXX (this is a combination OXX, OXA + some additional). Final list of available CSC codes is as follows:

BTU, CYO, DBT, ERO, EUR, ITV, MSR, NEE, ORS, PHE, PHN, SEE, SIO, TEM, TPH, TSR, TWO, VVT, XEF, XEZ, XEO, XSK

NEW !!! :D I present you new, unique option: "Keep current CSC", so you can install my DevBase keeping your original CSC even if it is not listed above! Note that in such case this option has some limitations, so read carefully informations below.

How does it work? Normally, if your current CSC is listed above (contained in my DevBase), this option detects it and automatically applies during install. However, if the detected CSC is not contained in my DevBase, then my new script makes a copy of all known contents associated with CSC (except so-called "CSC bloatware" placed in /system/app & priv-app, e.g brand and/or country specific apps), then installer cleans /system partition as usual, then it flashes new ROM base and then it restores backed up CSC contents instead of my multi CSC pack. It seems to be easy, but was rather laborious - I have analyzed almost all multi CSC packs and most of single CSC packs available in the world (designed to work with I9300XX... base) to make this script as accurate as possible.

As you probably noticed - in such case your CSC pack will be as complete as it was before, thus if you are currently using any custom ROM - BEFORE the first installation of my DevBase I highly recommend you to flash the latest original stock ROM released for your country, then perform "wipe data" using stock recovery and then CHECK your CSC (chage it if necessary - more information below).

For further updates you do not need to repeat it every time. You can flash directly the next (newer) version of my DevBase selecting "Keep current CSC" option again - you can repeat such update procedure for a long time. As you probably noticed again - if your CSC is not contained in my DevBase, then your CSC pack will not be updated until you flash a newer original stock ROM for your country. But don't worry - CSC updates usually bring nothing (usually the only updated thing in CSC pack is the whitelist of LTE networks). I'm not trying to say "CSC updates are completely unnecessary". It's good idea to update it occasionally (especially if you noticed that major Android update for your country has been released). When you will decide to do it - just flash temporarily again the newest original stock ROM containing your CSC, and then you can return to my the newest DevBase (this time wipe data will not be necessary).

NOTE: I do not recommend to use "Keep current CSC" option if your current PDA (build number, after the dot) is other than I9300XX... (e.g. I9300UB..., I9300XW..., I9300ZC..., I9300ZN..., I9300ZS..., etc.).

How can I check my current CSC?

Install Phone INFO app from Play Store and check your CSC. If you are using stock ROM and everything is ok with your CSC - all CSC fields in Phone Info app should display the same CSC, as below (otherwise, you probably forgot about wipe data when you were installing ROM with another CSC).

[IMG="Phone Info - CSC"]https://dl.dropbox.com/s/8hovnic9pvyr411/CSC_info2.jpg[/IMG]

How can I change my current CSC?

Q: Recently I tested several ROMs, in result of it my CSC has changed. I would like to install your DevBase, but first I want to restore my country's original CSC. What should I do?

Case 1:

Your country's original CSC is available in my DevBase

No special/additional steps are needed. Just install my DevBase - choose your CSC and tick "Wipe data" in Aroma Installer (note that sometimes additional reboot is required after completing pre-configuration steps to display your CSC correctly in Phone Info app).

Case 2:

Your country's original CSC is not available in my DevBase. Your original ROM contains

single CSC

pack (ommiting parts with model name and incremental version - name of CSC package is same as product code = CSC)

Example:

Model: GT-I9300
Model name: GALAXY S III
Country: Switzerland
Version: Android 4.3
Changelist: 2735602
Build date: Mon, 18 Aug 2014 11:47:53 +0000
Product Code: [COLOR="Red"]AUT[/COLOR]
PDA: I9300XXUGNH4
CSC: I9300[COLOR="red"]AUT[/COLOR]GNH1
MODEM: I9300XXUGNA8

In this case you need to flash your original ROM using PC Odin or Mobile Odin PRO, then perform wipe data using stock recovery and then check your CSC in Phone Info app (note that sometimes additional reboot is required after completing pre-configuration steps to display your CSC correctly in Phone Info app).

Now you can install my DevBase - just choose "Keep current CSC" in Aroma Installer (it's good idea to choose "Wipe data" again in Aroma Installer to remove from /data partition potential "garbage" like e.g app data created by CSC bloatware and CSC bloatware updates).

Case 3:

Your country's original CSC is not available in my DevBase. Your original ROM contains

multi CSC

pack (ommiting parts with model name and incremental version - name of CSC package differs from product code and usually begins with the letter "O")

Example:

Model: GT-I9300
Model name: GALAXY S III
Country: Thailand
Version: Android 4.3
Changelist: 2429075
Build date: Thu, 16 Jan 2014 14:53:58 +0000
Product Code: [COLOR="red"]THL[/COLOR]
PDA: I9300XXUGNA5
CSC: I9300[COLOR="Red"]OLB[/COLOR]GNB1
MODEM: I9300DXUGNB1

In this case you need to flash your original ROM using PC Odin or Mobile Odin PRO, then perform wipe data using stock recovery and then check your CSC in Phone Info app (note that sometimes additional reboot is required after completing pre-configuration steps to display your CSC correctly in Phone Info app). Then becomes something strange - you will see that your CSC is GLB (Philippines) instead of THL (Thailand)! It's because GLB is the default CSC in OLB multi CSC package in case of flashing it on ROM with other than OLB CSC package. To change CSC to THL you need CSC Select app from Play Store (requires root and stock recovery to perform all operations correctly!). Then check your CSC again using Phone Info app - should be OK.

Now you can install my DevBase - just choose "Keep current CSC" in Aroma Installer (it's good idea to choose "Wipe data" again in Aroma Installer to remove from /data partition potential "garbage" like e.g app data created by CSC bloatware and CSC bloatware updates).

ALEXNDR.I9300XXUGOB2:

1. Base:

- The newest European base (XXUGOB2), changelist: 2821876

- Multi CSC (list of CSC as above - to chose in Aroma Installer)

- All Samsung / Google apps available (except some CSC bloatware)

- Odexed (100% original stock framework & apps)

- Rooted (SuperSU 2.46 app + binary), BusyBox 1.23.1

- No visual changes (100% stock look)

- Stock kernel

2. [OPTIONAL] Init.d Support

- Init.d support without need of use custom kernel

3. [OPTIONAL] CscFeature MOD (/system/csc/others.xml):

- Added shutter sound menu in Camera

- Sending/receiving MMS without data on

- Added "Exit browser" option in Internet App

- Default enabled "Desktop view" in Internet App

- Available "Folder View" option in Message app

- Removed "Software update" option in Settings

- Added call button in Contacts and Logs

4. [OPTIONAL] Modified Phone app:

- Disabled increasing ringtone

- Call recording

5. [OPTIONAL] Modified Messages app:

- Disabled SMS to MMS auto-converting

- Increased SMS/MMS recipient limit (10 -> 1000)

- Increased SMS/MMS hour limit (100 -> 1000)

- Disabled SMS / MMS log history in call logs

6. [OPTIONAL] Modified Camera app:

- Full functionality of the Camera app in low battery

7. [OPTIONAL] Safe De-Bloat [NEW !!!]

How does it work? If you select "Safe De-Bloat" option in the Aroma installer, then most of usually useless pre-installed apps will be romeved. Why is it called "safe"?

- it removes ONLY apps available in stores, so you can easy restore any app if you change your mind

- it removes ONLY pre-installed system apps, it never touch any updated app nor app installed manually from store

Thus, the following conclusions can be drawn:

1. If you use "Safe De-Bloat" option when updating my DevBase without "Wipe data" ticked - in most cases almost all apps will remain untouched, because almost all apps have been updated already. But then you will be able to remove any useless app using the "Application manager", like any other app. Removed manually app will not appear again until you use "Safe De-Bloat" option when updating.

2. If you use "Safe De-Bloat" option when updating my DevBase with "Wipe data" ticked - then all apps listed below will be removed. If you would like to use any of these apps - just install it manually from appropriate store. Installed manually app will not be removed if you use "Safe De-Bloat" option again, during the next update.

Removed apps list:

ChatON

Chrome

Drive

Dropbox

Flipboard

Google+ / Photos

Group Play

Hangouts

Play Books

Play Games

Play Movies

Play Music

Play Newsstand

Samsung Link

Installation:

1. CWM recovery - open file using "Install Zip" option and confirm "Yes - install..."

2. Mobile Odin PRO - open file using "OTA/Update ZIP" option. UNTICK Everroot, because the rom is prerooted with the newest SuperSu and binary! Push "Flash Firmware".

No wipe data required if you are coming from stock ROM (if you choose "Keep current CSC" or same CSC as you are currently using). In other migration cases - wipe data is highly recommended (option available in the Aroma Installer)

Languages available in the Aroma Installer: English, Polish

Download link:

>> I9300XXUGOB2_DevBase_alexndr.zip << (updated Mar-26-2015)

>> Recent ROM versions for GT-I9300 <<

Note:

Check MD5 sum BEFORE flash (useful TOOL), because flashing damaged or incomplete ZIP files could (soft) brick your phone! Correct MD5 sum is shown on the AndroidFileHost website while downloading.

Useful PC Odin flashable files:

>> Recent kernel versions for GT-I9300 <<

>> Recent modem versions for GT-I9300 <<

Deodexed framework & apps:

Note that it is not stand alone deodexed ROM installer, it only replaces odexed framework & apps in existing ROM by deodexed contents.

Do not report bugs in this thread without placing the information that you are using deodexed ROM.

>> Recent deodexed files for GT-I9300 <<

I agree to use any part of my work to create more advanced custom ROM, but it would be great if you add me to the credits :)

If I feel that my work is useful - I'm going to continue working when a newer base will be released by Samsung

Credits: [MENTION=631273]Chainfire[/MENTION], [MENTION=3562083]wanam[/MENTION], [MENTION=402300]amarullz[/MENTION], [MENTION=673068]dsixda[/MENTION], [MENTION=369057]majdinj[/MENTION], [MENTION=5161352]JustArchi[/MENTION]

Hit Thanks button if you like my work :)