[ROM][G935F/FD][ALEXNDR] * U8EUE1 * DevBase v7.4 * Encryption support [Jul-10]

Search This thread

_alexndr

Senior Member
Mar 1, 2013
2,850
17,956
Samsung Galaxy S23 Ultra
Important notes for Developers / Chefs !!!

This ROM is NOT based on any other custom ROM. My work contains many original ideas and innovations that I introduced as the first in the ROM development (see "Changelist" in post #2). Of course, it does not mean that I do not need to thank anyone - there are people who helped / inspired me anyhow (see "Credits").

I will risk the statement that at this moment my "DevBase" is the most tuned and nuanced custom ROM available at XDA Forum :cool:

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

EDIT: Note related to creating "$ZIPFILE" which contains a file larger than ~4GB (e.g. system.img): the order of adding content to "$ZIPFILE" is very important! META-INF need to be added as the first dir in the archive! Example (my DevBase case):
Code:
zip -r -9 G935FXXU2xxxx_DevBase.zip META-INF options.prop ALEXNDR
It seems that misunderstanding of the above problem is the main reason why many devs give up and do not use my base as a pattern.

Hello :)

I have decided to create a pure base with my unified installer (should work with many other Samsung devices), which can be a pattern for ROM Chefs (not only for beginners) :D ROM is initially safe de-bloated (read below what does it exactly mean), but all features are present and works!

ROM can be installed by normal users as well. If you like a little de-bloated ROMs, clean but with all working features - probably there is no better alternative :D

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

ACR, AFG, AFR, ALE, ARO, ATO, AUT, BGL, BNG, BTC, BTU, BVO, CAC, CAM, CAU, CEL, CHK, CHO, CHP, CHQ, COO, CPW, CYO, DBT, DKR, DRC, ECT, EGY, EON, ETL, EUR, GLB, ILO, INS, INU, ITV, KOR, KSA, LUX, LYS, MAT, MAX, MID, MM1, MRT, MRU, MTZ, MWD, MYM, NEE, NPL, NZC, ORX, PAK, PCL, PCT, PCW, PHE, PHN, PTR, ROM, SEB, SEE, SEK, SER, SIN, SIO, SLI, SLK, SMA, SMG, SKZ, STH, THL, THR, TMC, TPA, TPH, TPL, TRG, TTR, TTT, TUN, TUR, TWO, UPO, UYO, VIM, WTL, XEF, XEH, XEO, XEU, XFA, XFE, XFM, XFU, XID, XME, XSA, XSG, XSP, XTC, XTE, XXV, ZTO

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 - more informations you can find in related older threads, e.g. HERE


ALEXNDR.G935FXXU8EUE1:

1. Base:
- Odexed (original stock files) + stock kernel
- Multi CSC (list of natively supported CSC as above) (*)
- Removed KNOX related content (useless on rooted phones)
- Rooted systemlessly (Magisk v23.0) (*)
- All original features are present and works (except KNOX related apps)
- Added "App Lock" feature (Settings -> Advanced features)
- No visual changes (100% stock look)

2. CscFeature MOD (enabled some built-in, hidden features):
- Added shutter sound menu in Camera app
- Sending/receiving MMS without data on
- Show SMS/MMS sending time instead of receiving
- Added "Call/Message block" option in Settings
- Added "Show network speed" toggle (Settings -> Display -> Status bar)
- Added "LTE Only" network mode (NOTE: voice calls may not work in this mode)
- 4G/3G network support in any CSC (master/slave SIM, applies to dual SIM variants)
- Call Recording (via "Record" button or "Auto record calls" option)
- Enabled "Recent App Protection" feature

3. Xposed framework & Xposed Installer app [optional] (*)

4. Virtual / physical Safe De-Bloat (more info below) (*)

What does it mean and why is it called "safe"?

- ONLY apps available in stores are removed / skipped in DevBase, so you can easy (re)install any of these app if you like
- ONLY pre-installed system apps are removed / skipped, DevBase installer will never touch any updated app nor app installed manually from a store
- By default virtual Safe De-Bloat is applied with exact same effect as physical (completely skips apps at boot). You can force to delete apps physically but it is recommended only if you really need more space in /system

Thus, the following conclusions can be drawn:

1. If you install my DevBase directly over stock ROM without performing "Wipe data" - in most cases almost all these apps will remain untouched, because almost all apps have been updated already (stored on /data). 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 my DevBase while updating.

2. If you perform "Wipe data" while installing my DevBase - 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 during the next DevBase update.

Removed / skipped apps list:

Excel
Facebook
LinkedIn
OneDrive
PowerPoint
Word

(*) - these options can be controlled by editing options.prop file (you can find such file in ZIP's root directory). Just place modified options.prop file (use e.g. Notepad++ to edit) in the root directory of internal emulated scdard (/data/media/0) or extSdCard (recommended if you plan to format internal emulated sdcard) and then start the installation. More info below:

#
# DevBase by ALEXNDR (_alexndr @ XDA)
#
# Configuration file to allow customize the installation.
#
# File inside the ZIP installer is just for reference - please DO NOT modify it!
# If you want to change some options listed below - edit the copy of this file, then place
# modified options.prop file in the root directory of internal emulated scdard (/data/media/0)
# or in the root directory of extSdCard (recommended if you plan to format internal emulated
# sdcard) and then start the installation.
#
# TIP: You do not need to repeat this step every next update I will release. As long as your
# customized options.prop file is present in the (ext)SdCard - future DevBase installers will
# "read in your mind" that you want to install with such options again.
#
# NOTE: All below variables and values are case sensitive!

# Enable root access. Allowed values:
# true - install Magisk as root solution (default)
# false - do not root device

root=true

# Install Xposed framework matched to the ROM (there is also a possibility to detect Xposed profile
# automatically, but auto-detection will not work if user will perform wipe /system). Allowed values:
# auto - detect Xposed profile automatically
# true - force Xposed framework installation
# false - do not install Xposed framework

xposed=auto

# CSC Selection. Allowed values:
# KCSC - Keep current CSC, recommended in most cases (automatic selection or keep current CSC contents).
# You can force the use of natively supported CSC by typing (use UPPERCASE!): ACR, AFG, AFR, ALE, ARO, ATO,
# AUT, BGL, BNG, BTC, BTU, BVO, CAC, CAM, CAU, CEL, CHK, CHO, CHP, CHQ, COO, CPW, CYO, DBT, DKR, DRC, ECT,
# EGY, EON, ETL, EUR, GLB, ILO, INS, INU, ITV, KOR, KSA, LUX, LYS, MAT, MAX, MID, MM1, MRT, MRU, MTZ, MWD,
# MYM, NEE, NPL, NZC, ORX, PAK, PCL, PCW, PHE, PHN, PTR, ROM, SEB, SEE, SEK, SER, SIN, SIO, SKZ, SLI, SLK,
# SMA, SMG, STH, THL, THR, TMC, TPA, TPH, TPL, TRG, TTR, TTT, TUN, TUR, TWO, UPO, UYO, VIM, WTL, XEF, XEH,
# XEO, XEU, XFA, XFE, XFM, XFU, XME, XSA, XSG, XSP, XTC, XTE, XXV, ZTO

CSC=KCSC

# Custom CSC Features. Allowed value in each line: <Example_line>value</Example_line>

<CscFeature_Common_SupportWcdmaInSlave>true</CscFeature_Common_SupportWcdmaInSlave>
<CscFeature_VoiceCall_ConfigRecording>RecordingAllowed</CscFeature_VoiceCall_ConfigRecording>
<CscFeature_Setting_EnableMenuBlockCallMsg>true</CscFeature_Setting_EnableMenuBlockCallMsg>
<CscFeature_Setting_CustNetworkSelMenu4>LTEONLY</CscFeature_Setting_CustNetworkSelMenu4>
<CscFeature_Setting_SupportRealTimeNetworkSpeed>true</CscFeature_Setting_SupportRealTimeNetworkSpeed>
<CscFeature_SmartManager_ConfigSubFeatures>roguepopup|autoclean|autorestart|applock|trafficmanager</CscFeature_SmartManager_ConfigSubFeatures>
<CscFeature_SmartManager_DisableAntiMalware>true</CscFeature_SmartManager_DisableAntiMalware>
<CscFeature_SystemUI_SupportRecentAppProtection>true</CscFeature_SystemUI_SupportRecentAppProtection>
<CscFeature_Message_DisplaySmsTimeAs>server</CscFeature_Message_DisplaySmsTimeAs>
<CscFeature_Message_DisplayMmsTimeAs>server</CscFeature_Message_DisplayMmsTimeAs>
<CscFeature_Camera_ShutterSoundMenu>true</CscFeature_Camera_ShutterSoundMenu>
<CscFeature_RIL_ForceConnectMMS>true</CscFeature_RIL_ForceConnectMMS>

# Custom physical debloat list. Allowed value in each line: path to app's directory in /system.
# (NOTE: wildcards are allowed here)

/system/*app/SamsungPass*
/system/*app/SamsungPay*
/system/*app/SecureFolder*
/system/app/SecurityLogAgent
/system/priv-app/KnoxCore

# Custom virtual debloat list. Allowed value in each line: exact app name with .apk extension.
# (NOTE: without app's path/directory, wildcards are NOT allowed here!)

Excel_SamsungStub.apk
Facebook_stub.apk
FBAppManager_NS.apk
FBInstaller_NS.apk
FBInstagram_stub.apk
FBServices.apk
FotaAgent.apk
Hangouts.apk
MSSkype_stub.apk
Music2.apk
OneDrive_Samsung_v2.apk
OneNote.apk
Photos.apk
PowerPoint_SamsungStub.apk
Videos.apk
WhatsApp.apk
Word_SamsungStub.apk

NEW !!! :D Starting from DevBase v3.0 there is a new customization method - you can change frequently switched root options or encrypt your device just by renaming installer's ZIP file name (instead of editing options.prop file). Currently supported "strings" in the file name: "noroot", "encrypt", "rescue", "xposed", "CSC_xxxx.zip":

Case 1 (default) - install the ROM with Magisk & MagiskSU as root solution
(just flash ZIP file "as it is")

Case 2 - do not root device (NOTE: you will get unmodified ROM!)
(place "noroot" string anywhere in the ZIP file name, e.g. "G935Fxxx_DevBase_v6.x_noroot.zip")

Regardless of the above root options, starting from DevBase v4.4+, you can also use "encrypt" option (place "encrypt" string anywhere in the ZIP file name, e.g. "G935Fxxx_DevBase_v6.x_encrypt.zip"). All your data will be encrypted "on-the-fly" at next boot after ROM update/reinstall. Wipe data is NOT necessary to use this option. You will NOT lose your data & apps but it is extremely important - do not interrupt encryption process during this "special" boot! Booting can take much longer and you may think it is a bootloop, but it isn't! If you have a large amount of used data - it is recommended to connect your phone to the charger during boot (and open a beer to avoid heart attack while waiting). You do not need to use "encrypt" option again in case of another DevBase update(s) - please read carefully notes below.

In DevBase ROM v4.5+ there is a "rescue" option, which may be especially helpful in case of encrypted device if you experienced bootloop caused by e.g. systemless mod/module/xposed stored on /data (without access to /data from TWRP). In case of bootloop just place "rescue" string anywhere in the ZIP file name, e.g. "G935Fxxx_DevBase_v6.x_rescue.zip" and then (re)install the ROM - should help in case of (probably) all possible bootloop reasons. In addition to the normal (re)installation of the ROM (thus restoring the original /system, kernel, modem, etc.) this option will also force "Core Only Mode" in Magisk and will move all SYSTEMLESS DevBase modifications to /data/devbase/system/.backup, before performing bind mounts, so original files will be used.

In DevBase ROM v4.6+ there is a possibility to force CSC by renaming ZIP file name - this is the only case-sensitive variable which have to be put at the beginning of ZIP file name and must be folloed by "_" (due to the fact that there is a high risk that ZIP file name may contain CSC code accidentally). Example (to force CSC DBT): "DBT_G935Fxxx_DevBase_v6.x.zip"

In DevBase ROM v5.6+ there is "xposed" option which allows you to force Xposed framework installation. It is NOT forced by default - you need to force it manually while installing ROM with Xposed first time, renaming ZIP's file name to e.g. "G935Fxxx_DevBase_v6.x_xposed.zip". Next ROM's updates will detect and apply Xposed profile automatically, unless you wipe /system - then auto detection is not possible.

Notes related to encrypted devices:

How to confirm that your data are encrypted:

1. Go to TWRP and check if it is possible to mount /data. If NOT - all is ok :) "Failed to mount '/data' (invalid argument)" will be the a frequent message that you need to like in the future ;)

How to update DevBase ROM to a newer version:

1. Copy a newer DevBase ROM to extSdCard or OTG storage (you do NOT need to use "encrypt" option in ZIP file name again, if your device is encrypted already - it just remain encypted)
2. Go to TWRP -> "Install" and flash ZIP file from extSdCard or OTG
3. That's all :cool:

The risk of data loss in case of encrypted devices, depending on the ROM scenario:

1. DevBase only: VERY LOW RISK (*)
2. Coming from other custom ROM with encrypted data - MEDIUM RISK (recommended backup)
3. Installing other custom ROM over DevBase - MEDIUM RISK (recommended backup, anyway)
4. Installing pure stock (using Odin) over DevBase (or over any other custom ROM) - VERY HIGH RISK (not recommended!)

(*) There is still a risk to get into a bootloop if you install stuffs like: Xposed framework, incompatible Magisk or Xposed module, incompatible systemless MOD in /data/devbase/system, etc. In case of bootloop just try to use "rescue" option described above :)

Notes related to EFS backup:

During install, my ROM's installer always performs EFS backup to {storage}/.backup/efs (where {storage} may be /external_sd, /usb-otg, /sdcard - in the preferred order). It is recommended to copy EFS backup occasionally outside the phone and store in safe location (PC, OTG, etc). There are 2 backups - when you first time installed my ROM (efs_backup.tar.gz) and recent, created additionally, just in case (efs_recent.tar.gz). Most useful will be most probably the first one (efs_backup).

You probably will never need these files, but sometimes s**t happens and restoring EFS backup may be the only one way to rescue your device!

When do I need to restore EFS backup?
- lost/invalid IMEI number
- proper IMEI but unable to connect to the network
- connected to the network but unable to make a call and/or transfer data
- unrecoverable bootloop (even after clean DevBase install with default settings)

NOTE: In contrast to many other custom ROMs - my installer uses gzip compression (*.img.gz) to store EFS backup(s). Restore command for your device is stored in txt file in the same directory with EFS backup. If you forgot command - you can read txt file containing proper command @ PC (Notepad) or even directly form TWRP using Terminal's 'cat' command, e.g.:

Code:
cat /external_sd/.backup/efs/efs_backup.txt

NOTE:: Do not panic, read the txt file peacefully and type command exactly as it is in TWRP's Terminal, then tap blue [enter] button. After all - please reboot device. If the problem was EFS related - your device just has been rescued :cool:

Installation:
CWM / TWRP recovery (KNOX 0x1) - open file using "Install (Zip)" option and confirm operation. If you want to perform "clean install' - perform "wipe data/factory reset" BEFORE flashing Zip!

Wipe data is NOT required if you are coming from stock ROM (already rooted) or a previous version of my DevBase (if you leave "Keep current CSC" option untouched in /options.prop or if you choose same CSC as you are currently using). In other cases - wipe data is highly recommended!

I do not recommend using any additional "superwipes" or format /system before install my DevBase (my installer cleans your system well enough!).


Credits:
@samsung for awesome device & stock firmware base
@Chainfire for systemless SuperSU and a lot of inspiration
@topjohnwu for Magisk and another inspiration
@rovo89 for Xposed framework & Xposed Installer app
@Tkkg1994 for TWRP for Oreo (quota support)
@Zackptg5, @osm0sis & @jcadduono for no-verity*


Hit Thanks button if you like my work. If you really appreciate my work - feel free buy me a coffee/beer (or flowers/wine for my wife who is patiently enduring my hobbies) :) https://www.paypal.com/donate/?business=RFGVQYRC34RVQ&currency_code=EUR

Due to the fact, that some countries banned PayPal - I have created also Patreon site: https://www.patreon.com/_alexndr
 
Last edited:

_alexndr

Senior Member
Mar 1, 2013
2,850
17,956
Samsung Galaxy S23 Ultra
Last edited:

_alexndr

Senior Member
Mar 1, 2013
2,850
17,956
Samsung Galaxy S23 Ultra
Changelog


v7.4 (starting from G935FXXU8EUE1 DevBase):

- Fixed unzip issue which caused unexpected installation termination - applies to TWRP 3.5.0_9-1 and newer

v7.3 (starting from G935FXXU7ETBD DevBase):

- Fixed bootloop issue in case of Android Q and "noroot" scenario - thanks to @Zackptg5 for the up to date dm-verity disabler

v7.2 (not released for G935F):

- Fixed bootloop issue in case of Android Q and encrypted devices (applies to dirty update)

v7.1 (starting from G935FXXS7ETA8 DevBase):

- Potential fix for "make_ext4fs: not found" error in newer TWRP versions and in result "Failed! Not enough space..." message appears while applying CSC during install (applies to N960x devices)

v7.0 (not released for G935F):

- Initial support for Android Q / system-as-root devices

v6.0 (starting from G935FXXU3ERL3 DevBase):

- Introduced logging entire installation process (to devbase_install.log file, placed in /data or /cache in case of encrypted devices). These logs may significantly increase the possibility of my help in case of problems with/after installation
- Major imrovements/bugfixes/optimizations related to Android Pie support (e.g. takes care about special SELinux contexts for /odm content, introduced in Pie)
- Removed SuperSU support. Changed allowed "root" variable value in options.prop to true/false (backward compatible with old options.prop file)
- Removed "skipblcp" option - baseband/modem will be always updated, bootloader need to be flashed separately (update is usually not mandatory)

v5.9 (starting from G935FXXU2ERG2 DevBase):

- Changed device detection method to bootloader's prefix (instead of ro.product.*)
- Improved support for applying custom mods automatically at each ROM's install/update, introduced in v5.6 (added support for etc, fonts, media & usr directories in {storage}/devbase/system)
- Added support for custom {storage}/devbase/post-installation.sh script

v5.8 (starting from G935FXXU2EREM DevBase):

- Improved unzip_flash function in the installer to detect properly more flashing errors (e.g. EXT4 partition mismatch)
- Changed /odm flashing method to file based due to potential /odm partition mismatch (applies to carrier branded treble devices)
- Minor optimizations/improvements in the installer (this time mainly to improve installation speed)
- Busybox has been removed from /system/xbin to run properly some banking apps

v5.7 (starting from G935FXXU2ERD5 DevBase):

- Improved/expanded built-in RMM lock prevention (thanks to @jesec for idea of overriding properties via factory.prop)
- OEM unlock status will always be displayed correctly in Developer options (to avoid confusion) with stock kernel included in the DevBase ROM

v5.6 (starting from G935FXXS2DRDC DevBase):

- Added "App Lock" feature (Settings -> Advanced features)
- Added Xposed framework as installation option (it is NOT forced by default - you need to force it manually while installing with Xposed first time, e.g. by "xposed" string in ZIP's file name, but next ROM's updates will detect and apply Xposed profile automatically, unless you wipe /system - then auto detection is not possible)
- Added support for applying custom mods automatically at each ROM's install/update by placing modded apps in {storage}/devbase/system/(priv-)app or placing modded framework files in {storage}/devbase/system/framework (where {storage} may be: /sdcard, /external_sd or /usb-otg)

v5.5 (starting from G935FXXS2DRCC DevBase):

- Added support for flashing optional, CSC related partitions ($OMR, $PRELOAD)
- Added possibility to update recovery (optional, performs update if exists $NAME/images/recovery.img)
- Partition(s) may be wiped only by writing new block's image
- Minor optimizations / improvements in the installer

v5.4 (starting from G935FXXS2DRC3 DevBase):

- Big step forward in DevBase ROM customization ability - almost all current ROM features (hidden up to v5.3) have been moved to options.prop (you will be able to easy add new or remove current feature)
- Return to dm-verity-opt-encrypt boot patcher if necessary (wherever it works well, there are still devices which need "no_verity" function introduced in v5.1)
- Initial support for forcing (changing) CSC in case of devices with /odm as CSC location
- Minor optimizations / improvements in the installer

v5.3 (not released for G93xx):

- Improved algorithm of search & change "ro.security.vaultkeeper.feature" property to 0 (/system & /vendor)

v5.2 (not released for G93xx):

- Added support for devices with /odm as CSC location
- Added support for flashing $ODM, $VENDOR, $KEYSTORAGE, $DQMDBG images
- Added support for custom debloat list and custom CscFeature list in options.prop
- options.prop file format has been changed to CR/LF (Windows) - more noob-proof solution, user can edit a copy of options.prop file even in Windows Notepad (the installer still supports ANY text format of options.prop file - Win/Unix/MAC)

v5.1 (starting from G935FXXU2DRB7 DevBase):

- Created new "no_verity" function in the installer, compatible with Samsung's Oreo, based on @Chainfire's patch tool (no-verity-opt-encrypt has been removed). In case of Oreo & Magisk as root solution - "no_verity" function will be used as additional support for patching fstab* (as long as Magisk does not do it correctly)

v5.0 (not released for G93xx):

- SYSTEMLESS DevBase has been removed due to the fact, that in case of modern devices/firmwares we need to perform many changes physically in /system anyway, so it loses the sense of use here. If you liked it - you can still install it separately from HERE (it does not need to be re-installed after ROM update as it is installed in /data)
- Added "skipblcp" option to let users skip BL/CP update (additionally it disables auto-reboot when the installer finished work as it is just not necessary then)
- Added "phydebloat" option to let users choose beetween virtual and physical debloat (to get more space in /system)
- Other (minor) optimizations & improvements

v4.6 (starting from G935FXXU2DRAG DevBase):

- Initial support for devices with /system/omc as CSC location
- SYSTEMLESS DevBase updated to v2.0 (see changelog HERE)
- Added possibility to force CSC by renamig ZIP filename. Due to the fact that trere are many different CSC and it is possible that $ZIPNAME may contain a CSC accidentally - to force CSC you need to put CSC in $ZIPNAME at the beginning and CSC must be followed by "_". Example $ZIPNAME (to force CSC DBT): "DBT_G93xFXXU1xxxx_DevBase.zip"
- Added auto efs-backup during install. Installer will create first backup (efs_backup.img.gz) and recent backup (efs_recent.img.gz). The installer will prefer external storage as default backup location (/external_sd or /usb-otg) due to encryption support. MD5 sum and restore command will be stored in efs_backup.txt or efs_recent.txt file
- Other (minor) optimizations & improvements, e.g. added more error messages in case of something went wrong during install

v4.5 (starting from G935FXXU1DQLF DevBase):

- Added new "rescue" option (readable only as string in ZIP file name due to the fact, that we will need this option rarely). It can be a potentially very helpful option in case of bootloop @ encrypted device, caused by a systemless mod/module/xposed stored on /data (without access to /data from TWRP) - more info in post #1
- SYSTEMLESS DevBase updated to v1.14 (see changelog HERE)

v4.4 (starting from G935FXXU1DQL8 DevBase):

- Added new "encrypt" option (readable only as string in ZIP file name due to the fact, that we need to do it only once). Now you can easy encrypt all data in your device, just during the ROM upgrade (without data loss).
- SYSTEMLESS DevBase updated to v1.13 (see changelog HERE)

v4.3 (starting from G935FXXS1DQF6 DevBase):

- "root.supersu" & "root.magisk" variables in the options.prop file have been replaced by one "root" variable (dropped possibility to install both - SuperSU & Magisk - due to the fact that Magisk v13+ does not support SuperSU as root solution)
- SYSTEMLESS DevBase updated to v1.9 v1.12 (see changelog HERE)

v4.2 (starting from G935FXXU1DQD7 DevBase):

- Added possibility to add systemlessly NEW apps to /data/devbase/system/(priv-)app (up to 5 apps in "app" & 5 apps in "priv-app"). The only condition is that you need to rename its directories to CustomApp[1...5] (e.g. CustomApp1, CustomApp2, etc..). These apps will remain even if you flash a new DevBase as corresponding dummy directories will exist in future DevBase updates
- In case of DevBase update or re-installation - installer will not remove your custom entries in /data/devbase/system/build.prop and in *.xml files placed in /data/devbase/system/csc
- SYSTEMLESS DevBase updated to v1.6 v1.8 (see changelog HERE)

v4.1 (starting from G935FXXU1DQD1 DevBase):

- Added full Magisk support - MagiskSU is now default root solution (ROM should pass SafetyNet with Magisk Hide enabled in settings)
- Since systemless Xposed does not need to be re-installed every new DevBase I will release (in case of using the same root solution) - it makes no sense to keep it anymore as installation option
- SYSTEMLESS DevBase updated to v1.5 (see changelog HERE)

v4.0 (not released for G93xx):

- A huge step in the systemless direction! DevBase installer now installs pure odexed stock ROM (just slightly debloated), then systemless SuperSU, then systemless DevBase, then (optionally) systemless Xposed
- All Knox related applications are available again (except SecurityLogAgent, to prevent annoying security alerts)
- Fake KNOX 0x0 status (check it in PhoneINFO app) - most of Knox related apps should work again, like in case of untouched KNOX flag
- All mods known from previous DevBase versions (up to v3.x) now are applied systemlessly - all modified files (including modded apps) are placed in /data/devbase/system instead of physical /system partition. Mods section (#4) has been updated to install mods to /data/devbase/system/(priv-)app if systemless DevBase has been detected (otherwise will be installed as usual, to /system)
- Deodex on-the-fly feature has been removed. If you really need deodexed ROM - you can install someone else's deodexed ROM, then systemless DevBase as an overlay
- Init.d support has been removed as it is deprecated (use su.d instead)

v3.8 (not released for G93xx):

- Added hexpatch to root_from function (support for SM-N930x, thanks to @Chainfire)

v3.7 (not released for G93xx):

- Another major improvement/bugfix in deodex_from function (full support for 64 bit OS)

v3.6 (not released for G93xx):

- Major improvement/bugfix in deodex_from function (added "-g" switch to zip command - finally no issues in case of deodexed Android 6.0.1)

v3.5 (not released for G93xx):

- Improved root_from function (Android 5.1+) - added "setprop selinux.reload_policy 1" removal from init.rc (thanks to @Chainfire)
- Fixed bug in new alghoritm for checking whether stock recovery should be installed or not (introduced in v3.4)
- Added new functionality - installer will store a copy of patched stock kernel in /data for those who flashed custom kernel but for some reasons want to revert to the stock kernel (Android 5.1+)

v3.4 (not released for G93xx):

- Completely changed alghoritm for checking whether stock recovery should be installed or not (it applies to FlashFire users). Now it depends on previously used recovery (instead of checking KNOX flag which was not 100% reliable across devices/recoveries)

v3.32 (not released for G93xx):

- Updated set_csc, kcsc_backup, kcsc_restore functions to support more devices
- Updated partition detection algorithm to support more devices
- Fixed path to options.prop file placed in external sdcard in case of updating Marshmallow while using FlashFire
- Minor intaller's optimizations/bugfixes

v3.31 (not released for G93xx):

- Potential fix for reported problems with root (rare cases)

v3.3 (not released for G93xx):

- Improved method of reading options from ZIP file name (previous was directory/path sensitive also)
- Added support to mod_csc function for other than UNIX text format (it's a little ridiculous, but in case of some CSCs - original /system/csc/other.xml file has Windows or MAC text format!)
- Initial support for options.prop file in CRLF text format (DOS/Windows)

v3.21 (not released for G93xx):

- Fixed installer's issue if there is a [space] present in ZIP filename or a directory containing DevBase (see #1728)

v3.2 (not released for G93xx):

- Another improvements in add_initd function (details - see v1.3)
- Improvements in set_perm, set_perm_rec and root_from functions (recovery-independent structure)
- Improvements in deodex_from function related to Android MM
- New get_con function in the main sh script (useful for devs)
- BusyBox updated to 1.22.1 (bionic) [no, this is NOT a mistake!]
- Minor intaller's optimizations/bugfixes

v3.1 (not released for G93xx):

- Significantly improved "add_initd" function in the update-binary shell script. Added support for (probably) all available Samsung's platforms (e.g. Exynos) and all available firmwares (based on Android 4.4+)
- In case of installation with Xposed framework installer checks if Xposed Installer app is present in /data/app and installs it automatically if necessary
- Minor intaller's optimizations/improvements

v3.0 (not released for G93xx):

- Entire installer has been re-written from the scratch! All "magic" moved to update-binary which is a shell script. It opens up new possibilities never possible before!
- Introduced new customization method - you can change most frequently switched options just by renaming installer's ZIP file name. Currently supported "strings" in the file name:
"noroot" (means "do not root"), "deodex", "xposed", "initd" (no other comments are required, I hope..)
- Starting from v3.0 init.d support is disabled by default

v2.3 (not released for G93xx):

- Added option to install suitable Xposed framework in one step while installing DevBase (for maximum comfort). There is a new xframework.sh script - device independent structure and full Android 5.1+/6.0+ support. Backup method is compatible with well known Xposed uninstallers (tested with @wanam's)

v2.2 (not released for G93xx):

- Significantly improved root_supersu.sh script - device independent structure and full Android 5.1+/6.0+ suport including on the fly kernel/ramdisk/sepolicy patching if necessary. SU binaries are still copied to /system as it is the best choice in case of custom ROMs
- Changed order of performed operations in the updater-script due to new root_supersu.sh script advantages
- Installer wipes partitions designated for RAW content (e.g. kernel / recovery image) before writing to them
- Minor additions in dex_injector.sh script related to Android 6.0+

v2.11 (not released for G93xx):

- Fixed some minor installer's issues ("set_perm" function in set_csc.sh did not work correctly while using wildcards in the path (it was exclusively FlashFire issue! no problem with TWRP / CWM). Fortunately - only /system/etc/csc_*.txt were really "affected" - it didn't cause real issues as these files are empty)

v2.1 (not released for G93xx):

- As some people felt a bit disapointed / worried about DevBase v2.0 ROM file size - finally I have decided to debloat stock system.img (in same way as in v1.x => "Safe De-Bloat") and remove option to install all available bloatware. ROM file size has been reduced from about ~2GB to about ~1.6GB. Note for Devs / Chefs: Do not use Windows tools - you need Linux with "selinux" package installed (to handle SELinux contexts) to mount (rw) system.img safely. If you want to add / change any system content this way - remember about proper chown/chmod/chcon
- Added device check during install as flashing directly to EMMC block is potentially more risky for "other" devices. Installer will abort installation if device is not N910F (trlte(xx)). If you want to try this ROM on other N4 devices - you need to remove this check manually from updater-script (it is more conscious procedure)

v2.0 (not released for G93xx):

- Completely new concept of ROM development that makes it easy to build most tuned and nuanced custom ROMs. No more arduous manual analysis or (often) invalid permissions / SELinux contexts taken from a kitchen. The main idea is to flash original, stock /system image as EMMC block (in same way as PC Odin does) instead of extracting ZIP's contents to mounted partition, then setting permissions, then creating symlinks, etc. However, it requires more knowledge related to sh scripts as ALL necessary changes need to be done on the fly, while installing (e.g. by injecting modified classes.dex and/or modified images/xmls to /res/../* into an apk). There are no limits, all depends on your creativity!
- One common ZIP installer for Odexed and Deodexed ROM - you can control it by new "deodexed.rom" entry in options.prop (there is new dex_injector.sh script which can deodex on the fly the whole ROM using previously processed classes.dex files)
- ROM is still Safe De-Bloated by default but removing bloatware during install is not mandatory - you can control it by new "safe.debloat" entry in options.prop (there is new protection included to avoid overfilling /system in case of large size of additional MODs and/or large multi CSC package)
- Major improvements in csc_detect.sh script - it is able to detect previous CSC even in cases of flashing over e.g. CM based ROM and/or previously formatted system partition. However, if detected CSC is NOT included in my multi CSC package, in both mentioned cases it is still not possible to keep detected CSC (as there is no CSC related content to backup / restore)
- Improvements in all sh scripts - additional "metadata" entries in updater-script (related to processed contents) are not required
- Improvements in root_supersu.sh script - it is suitable for 32 and 64 bit OS
- Added full zip support from the command line

v1.x (initial version, further improvements, not released for G93xx):

- Built without using a kitchen. All set_metadata* / symlink entries are result of arduous manual analysis. For more info about the method - see hidden content for Devs / Chefs in THIS thread.
- New customization method without using Aroma (options.prop)
- Many useful scripts for easy installation: CSC applying/autodetection, backup/restore of security files, backup/restore of existing CSC package, XML modding on the fly, root, init.d support
- Many small changes and improvements "in the meantime" which I simply do not remember...
- Safe De-Bloated (see post #1 for details)
 
Last edited:

_alexndr

Senior Member
Mar 1, 2013
2,850
17,956
Samsung Galaxy S23 Ultra
Optional MODs


[WORK IN PROGRESS, MODDING HAS LOW PRIORITY]

These modifications I have done personally using (bak)smali tools - these are NOT "borrowed" from other custom ROM, nor from someone else's thread (thanks to @majdinj, @tdunham, @Grouxho & @yash92duster for their excellent modding guides). All ZIP files are TWRP flashable:

>> MODs for SM-G93xF/FD <<

TIP: Are you tired with re-installing your favorite MODs every time you update this ROM? Just take advantage of the new DevBase feature, intruduced in v5.6 (see "Changelog"). It is enough to put your favorite apks and/or jars in /sdcard/devbase/system/(priv-)app (or ../framework) and these MODs will be detected & applied automatically every time you update this ROM. You can also use your /external_sd to store your favorite MODs (it is mandatory if you are using encryption).

Example for "G93xF_DisableHighVolumeWarning.zip" (modded SystemUI.apk):

- unzip SystemUI.apk file from my flashable MOD
- create /sdcard/devbase/system/priv-app/SystemUI directory
- place modded SystemUI.apk in above directory

Next time you will update my ROM - my installer will use modded SystemUI.apk instead of stock app included in my ROM :cool:

NOTE: Use this feature consciously and carefully! It may happen that your MOD is not compatible with a newer Samsung's base (especially in case of major Android update)! I will warn you about it, but only in case of MY MODs, I am not able to predict what kind of mods you are using.
 
Last edited:

citytrader

Senior Member
Jan 19, 2012
1,492
589
Hi @_alexndr and thanks for the new base, just a couple of questions, could be possible to add UUB CSC or TTT or TPA? this are to be used in Latinamerica
For the other side, is it possible to give indications how to disable safety volume, with this option I will very glad to test your ROM!!! I know I have to modify services.jar, but the question will be where!! :)
 
Last edited:

_alexndr

Senior Member
Mar 1, 2013
2,850
17,956
Samsung Galaxy S23 Ultra
S-Health not working, Knox tripped message.

You can add:

Code:
ro.config.tima=0

to /data/devbase/system/build.prop (then reboot)

The advantage of systemless build.prop support is that you need to add it only ONCE.

Your favorite entries stored in /data/devbase/system/build.prop will be used even after another DevBase update (this file will not be touched while the installer run next time)

I will consider to add this line by default by the installer if it does not exists already in /data/devbase/system/build.prop
 

civato

Inactive Recognized Contributor
Apr 20, 2011
4,296
19,224
You can add:

Code:
ro.config.tima=0
to /data/devbase/system/build.prop (then reboot)

The advantage of systemless build.prop support is that you need to add it only ONCE.

Your favorite entries stored in /data/devbase/system/build.prop will be used even after another DevBase update (this file will not be touched while the installer run next time)

I will consider to add this line by default by the installer if it does not exists already in /data/devbase/system/build.prop

Some questions if I may?
1*Is there a way you can do it on installation of the rom. Like adding it in the option.prop or in the update binairy of the devbase.zip?
2*Using a kernel with dm verify disabled (like a custom kernel), what will be the disadvantages of that?
3*Is there a way of installing directly to data/devbase/system (like a modded app) with a zip installed with recovery?

I would also like to say this is a very smooth rom and a good solid way of installing a rom to your needs, Thanks for that!
 
Last edited:
  • Like
Reactions: _alexndr

Calvin.manneson

Senior Member
Feb 3, 2015
585
274
Samsung Galaxy S9+
Vivo Z1 Pro
thanx.
how to use on flat.G930F?

edit:tried to rename zip and replace images inside the zip....how to fool installer?
@civato.. if you come out of your 'cave' occasionally...hope you tempted to share ...:victory:




edit:success!!
edited update_binary inside zip...flashed ok
:laugh:
 

Attachments

  • 170419-145503.jpg
    170419-145503.jpg
    180 KB · Views: 2,510
Last edited:

_alexndr

Senior Member
Mar 1, 2013
2,850
17,956
Samsung Galaxy S23 Ultra
Some questions if I may?
1*Is there a way you can do it on installation of the rom. Like adding it in the option.prop or in the update binairy of the devbase.zip?
2*Using a kernel with dm verify disabled (like a custom kernel), what will be the disadvantages of that?
3*Is there a way of installing directly to data/devbase/system (like a modded app) with a zip installed with recovery?

I would also like to say this is a very smooth rom and a good solid way of installing a rom to your needs, Thanks for that!

1*I will think about it in the next release
2*Should work with any kernel which can be successfully patched by Magisk or SuperSU (systemless). If you flash a custom kernel - you basically need to reinstall Magisk (or systemless SuperSU) to apply all necessary patches to your new kernel.

There is another way, for advanced users - if your just flashed custom kernel supports init.d (but it is mandatory that scripts need to be executed in post-fs-data) - you can manually put 0000000devbase script to /system/etc/init.d, but you need to remove check for init.supersu.rc / init.magisk.rc file(s) (as there is no official support for this) - in such case systemless mods should work even without systemless root
3*Of course you can do it directly or via ZIP. You can also see my method (slightly expanded for encrption support via /cache) - see MODs for Nougat in post #5 here:
https://xdaforums.com/showthread.php?p=70036256&postcount=5

thanx.
how to use on flat.G930F?

[...]edit:success!!
edited update_binary inside zip...flashed ok
:laugh:

I have plan to release also ready to use version for G930F
 

_alexndr

Senior Member
Mar 1, 2013
2,850
17,956
Samsung Galaxy S23 Ultra
Work in progress with DQD2 (in both versions - G930F(D)/G935F(D)) :cool:

This release will contain "ro.config.tima=0" entry in /data/devbase/system/build.prop by default (but only in case of fresh installation, if you install it over previous DQD1 DevBase -> you need to add this line manually as the installer never touch existing file) - due to issue with S-Health reported by @civato
 
Last edited:

civato

Inactive Recognized Contributor
Apr 20, 2011
4,296
19,224
1*I will think about it in the next release

Also possible to add the
"wlan.wfd.hdcp=disable"
This for screenmirroring support.
I did the things above on my own in the devbase.zip and added the LUX csc as there is still no official support for it. I created one so I got autocorrection in mu csc region on the keyboard. ANd added it to the zip package and made the changes on the option.prop and SW_Configuration.xml so it installs just fine.

One problem I got when I create my own system.img (with the new DQD2) it boots just fine (full clean install) but it got stuck on the Network status checking right after you confirm the samsung legal stuff on the installation wizard.
It just keeps spinning there and doesn't go any further. Any tips?

Edit:
The private mode is it working I did not test it yet or do I need to add a modded "PersonalPageService"
 
Last edited:
  • Like
Reactions: ongxa and _alexndr

_alexndr

Senior Member
Mar 1, 2013
2,850
17,956
Samsung Galaxy S23 Ultra
Also possible to add the
"wlan.wfd.hdcp=disable"
This for screenmirroring support.
I did the things above on my own in the devbase.zip and added the LUX csc as there is still no official support for it. I created one so I got autocorrection in mu csc region on the keyboard. ANd added it to the zip package and made the changes on the option.prop and SW_Configuration.xml so it installs just fine.

One problem I got when I create my own system.img (with the new DQD2) it boots just fine (full clean install) but it got stuck on the Network status checking right after you confirm the samsung legal stuff on the installation wizard.
It just keeps spinning there and doesn't go any further. Any tips?

Good idea to add also "wlan.wfd.hdcp=disable", I forgot about screen mirroring fix :good:

I will add LUX CSC if such CSC will be released oficially with Nougat ;) (I had some bad experience with using old xmls in case of major Android update)
 
Last edited:
  • Like
Reactions: mauam and civato

civato

Inactive Recognized Contributor
Apr 20, 2011
4,296
19,224
Good idea to add also "wlan.wfd.hdcp=disable", I forgot about screen mirroring fix :good:

I will add LUX CSC if such CSC will be released oficially with Nougat ;) (I had some bad experience with using old xmls in case of major Android update)
Maybe you can add the official dutch (NL t9) in the T9DB folder so you get autocorrection for the NL typing people. (I extracted that on a official samsung Nougat rom and confirmed it working.
See attachments.
 

Attachments

  • Samsung_1102_r1-6_NLusUN_xt9_ALM3.zip
    3.7 MB · Views: 79
  • Like
Reactions: liaqatkhan

Top Liked Posts

  • There are no posts matching your filters.
  • 162
    Important notes for Developers / Chefs !!!

    This ROM is NOT based on any other custom ROM. My work contains many original ideas and innovations that I introduced as the first in the ROM development (see "Changelist" in post #2). Of course, it does not mean that I do not need to thank anyone - there are people who helped / inspired me anyhow (see "Credits").

    I will risk the statement that at this moment my "DevBase" is the most tuned and nuanced custom ROM available at XDA Forum :cool:

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

    EDIT: Note related to creating "$ZIPFILE" which contains a file larger than ~4GB (e.g. system.img): the order of adding content to "$ZIPFILE" is very important! META-INF need to be added as the first dir in the archive! Example (my DevBase case):
    Code:
    zip -r -9 G935FXXU2xxxx_DevBase.zip META-INF options.prop ALEXNDR
    It seems that misunderstanding of the above problem is the main reason why many devs give up and do not use my base as a pattern.

    Hello :)

    I have decided to create a pure base with my unified installer (should work with many other Samsung devices), which can be a pattern for ROM Chefs (not only for beginners) :D ROM is initially safe de-bloated (read below what does it exactly mean), but all features are present and works!

    ROM can be installed by normal users as well. If you like a little de-bloated ROMs, clean but with all working features - probably there is no better alternative :D

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

    ACR, AFG, AFR, ALE, ARO, ATO, AUT, BGL, BNG, BTC, BTU, BVO, CAC, CAM, CAU, CEL, CHK, CHO, CHP, CHQ, COO, CPW, CYO, DBT, DKR, DRC, ECT, EGY, EON, ETL, EUR, GLB, ILO, INS, INU, ITV, KOR, KSA, LUX, LYS, MAT, MAX, MID, MM1, MRT, MRU, MTZ, MWD, MYM, NEE, NPL, NZC, ORX, PAK, PCL, PCT, PCW, PHE, PHN, PTR, ROM, SEB, SEE, SEK, SER, SIN, SIO, SLI, SLK, SMA, SMG, SKZ, STH, THL, THR, TMC, TPA, TPH, TPL, TRG, TTR, TTT, TUN, TUR, TWO, UPO, UYO, VIM, WTL, XEF, XEH, XEO, XEU, XFA, XFE, XFM, XFU, XID, XME, XSA, XSG, XSP, XTC, XTE, XXV, ZTO

    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 - more informations you can find in related older threads, e.g. HERE


    ALEXNDR.G935FXXU8EUE1:

    1. Base:
    - Odexed (original stock files) + stock kernel
    - Multi CSC (list of natively supported CSC as above) (*)
    - Removed KNOX related content (useless on rooted phones)
    - Rooted systemlessly (Magisk v23.0) (*)
    - All original features are present and works (except KNOX related apps)
    - Added "App Lock" feature (Settings -> Advanced features)
    - No visual changes (100% stock look)

    2. CscFeature MOD (enabled some built-in, hidden features):
    - Added shutter sound menu in Camera app
    - Sending/receiving MMS without data on
    - Show SMS/MMS sending time instead of receiving
    - Added "Call/Message block" option in Settings
    - Added "Show network speed" toggle (Settings -> Display -> Status bar)
    - Added "LTE Only" network mode (NOTE: voice calls may not work in this mode)
    - 4G/3G network support in any CSC (master/slave SIM, applies to dual SIM variants)
    - Call Recording (via "Record" button or "Auto record calls" option)
    - Enabled "Recent App Protection" feature

    3. Xposed framework & Xposed Installer app [optional] (*)

    4. Virtual / physical Safe De-Bloat (more info below) (*)

    What does it mean and why is it called "safe"?

    - ONLY apps available in stores are removed / skipped in DevBase, so you can easy (re)install any of these app if you like
    - ONLY pre-installed system apps are removed / skipped, DevBase installer will never touch any updated app nor app installed manually from a store
    - By default virtual Safe De-Bloat is applied with exact same effect as physical (completely skips apps at boot). You can force to delete apps physically but it is recommended only if you really need more space in /system

    Thus, the following conclusions can be drawn:

    1. If you install my DevBase directly over stock ROM without performing "Wipe data" - in most cases almost all these apps will remain untouched, because almost all apps have been updated already (stored on /data). 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 my DevBase while updating.

    2. If you perform "Wipe data" while installing my DevBase - 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 during the next DevBase update.

    Removed / skipped apps list:

    Excel
    Facebook
    LinkedIn
    OneDrive
    PowerPoint
    Word

    (*) - these options can be controlled by editing options.prop file (you can find such file in ZIP's root directory). Just place modified options.prop file (use e.g. Notepad++ to edit) in the root directory of internal emulated scdard (/data/media/0) or extSdCard (recommended if you plan to format internal emulated sdcard) and then start the installation. More info below:

    #
    # DevBase by ALEXNDR (_alexndr @ XDA)
    #
    # Configuration file to allow customize the installation.
    #
    # File inside the ZIP installer is just for reference - please DO NOT modify it!
    # If you want to change some options listed below - edit the copy of this file, then place
    # modified options.prop file in the root directory of internal emulated scdard (/data/media/0)
    # or in the root directory of extSdCard (recommended if you plan to format internal emulated
    # sdcard) and then start the installation.
    #
    # TIP: You do not need to repeat this step every next update I will release. As long as your
    # customized options.prop file is present in the (ext)SdCard - future DevBase installers will
    # "read in your mind" that you want to install with such options again.
    #
    # NOTE: All below variables and values are case sensitive!

    # Enable root access. Allowed values:
    # true - install Magisk as root solution (default)
    # false - do not root device

    root=true

    # Install Xposed framework matched to the ROM (there is also a possibility to detect Xposed profile
    # automatically, but auto-detection will not work if user will perform wipe /system). Allowed values:
    # auto - detect Xposed profile automatically
    # true - force Xposed framework installation
    # false - do not install Xposed framework

    xposed=auto

    # CSC Selection. Allowed values:
    # KCSC - Keep current CSC, recommended in most cases (automatic selection or keep current CSC contents).
    # You can force the use of natively supported CSC by typing (use UPPERCASE!): ACR, AFG, AFR, ALE, ARO, ATO,
    # AUT, BGL, BNG, BTC, BTU, BVO, CAC, CAM, CAU, CEL, CHK, CHO, CHP, CHQ, COO, CPW, CYO, DBT, DKR, DRC, ECT,
    # EGY, EON, ETL, EUR, GLB, ILO, INS, INU, ITV, KOR, KSA, LUX, LYS, MAT, MAX, MID, MM1, MRT, MRU, MTZ, MWD,
    # MYM, NEE, NPL, NZC, ORX, PAK, PCL, PCW, PHE, PHN, PTR, ROM, SEB, SEE, SEK, SER, SIN, SIO, SKZ, SLI, SLK,
    # SMA, SMG, STH, THL, THR, TMC, TPA, TPH, TPL, TRG, TTR, TTT, TUN, TUR, TWO, UPO, UYO, VIM, WTL, XEF, XEH,
    # XEO, XEU, XFA, XFE, XFM, XFU, XME, XSA, XSG, XSP, XTC, XTE, XXV, ZTO

    CSC=KCSC

    # Custom CSC Features. Allowed value in each line: <Example_line>value</Example_line>

    <CscFeature_Common_SupportWcdmaInSlave>true</CscFeature_Common_SupportWcdmaInSlave>
    <CscFeature_VoiceCall_ConfigRecording>RecordingAllowed</CscFeature_VoiceCall_ConfigRecording>
    <CscFeature_Setting_EnableMenuBlockCallMsg>true</CscFeature_Setting_EnableMenuBlockCallMsg>
    <CscFeature_Setting_CustNetworkSelMenu4>LTEONLY</CscFeature_Setting_CustNetworkSelMenu4>
    <CscFeature_Setting_SupportRealTimeNetworkSpeed>true</CscFeature_Setting_SupportRealTimeNetworkSpeed>
    <CscFeature_SmartManager_ConfigSubFeatures>roguepopup|autoclean|autorestart|applock|trafficmanager</CscFeature_SmartManager_ConfigSubFeatures>
    <CscFeature_SmartManager_DisableAntiMalware>true</CscFeature_SmartManager_DisableAntiMalware>
    <CscFeature_SystemUI_SupportRecentAppProtection>true</CscFeature_SystemUI_SupportRecentAppProtection>
    <CscFeature_Message_DisplaySmsTimeAs>server</CscFeature_Message_DisplaySmsTimeAs>
    <CscFeature_Message_DisplayMmsTimeAs>server</CscFeature_Message_DisplayMmsTimeAs>
    <CscFeature_Camera_ShutterSoundMenu>true</CscFeature_Camera_ShutterSoundMenu>
    <CscFeature_RIL_ForceConnectMMS>true</CscFeature_RIL_ForceConnectMMS>

    # Custom physical debloat list. Allowed value in each line: path to app's directory in /system.
    # (NOTE: wildcards are allowed here)

    /system/*app/SamsungPass*
    /system/*app/SamsungPay*
    /system/*app/SecureFolder*
    /system/app/SecurityLogAgent
    /system/priv-app/KnoxCore

    # Custom virtual debloat list. Allowed value in each line: exact app name with .apk extension.
    # (NOTE: without app's path/directory, wildcards are NOT allowed here!)

    Excel_SamsungStub.apk
    Facebook_stub.apk
    FBAppManager_NS.apk
    FBInstaller_NS.apk
    FBInstagram_stub.apk
    FBServices.apk
    FotaAgent.apk
    Hangouts.apk
    MSSkype_stub.apk
    Music2.apk
    OneDrive_Samsung_v2.apk
    OneNote.apk
    Photos.apk
    PowerPoint_SamsungStub.apk
    Videos.apk
    WhatsApp.apk
    Word_SamsungStub.apk

    NEW !!! :D Starting from DevBase v3.0 there is a new customization method - you can change frequently switched root options or encrypt your device just by renaming installer's ZIP file name (instead of editing options.prop file). Currently supported "strings" in the file name: "noroot", "encrypt", "rescue", "xposed", "CSC_xxxx.zip":

    Case 1 (default) - install the ROM with Magisk & MagiskSU as root solution
    (just flash ZIP file "as it is")

    Case 2 - do not root device (NOTE: you will get unmodified ROM!)
    (place "noroot" string anywhere in the ZIP file name, e.g. "G935Fxxx_DevBase_v6.x_noroot.zip")

    Regardless of the above root options, starting from DevBase v4.4+, you can also use "encrypt" option (place "encrypt" string anywhere in the ZIP file name, e.g. "G935Fxxx_DevBase_v6.x_encrypt.zip"). All your data will be encrypted "on-the-fly" at next boot after ROM update/reinstall. Wipe data is NOT necessary to use this option. You will NOT lose your data & apps but it is extremely important - do not interrupt encryption process during this "special" boot! Booting can take much longer and you may think it is a bootloop, but it isn't! If you have a large amount of used data - it is recommended to connect your phone to the charger during boot (and open a beer to avoid heart attack while waiting). You do not need to use "encrypt" option again in case of another DevBase update(s) - please read carefully notes below.

    In DevBase ROM v4.5+ there is a "rescue" option, which may be especially helpful in case of encrypted device if you experienced bootloop caused by e.g. systemless mod/module/xposed stored on /data (without access to /data from TWRP). In case of bootloop just place "rescue" string anywhere in the ZIP file name, e.g. "G935Fxxx_DevBase_v6.x_rescue.zip" and then (re)install the ROM - should help in case of (probably) all possible bootloop reasons. In addition to the normal (re)installation of the ROM (thus restoring the original /system, kernel, modem, etc.) this option will also force "Core Only Mode" in Magisk and will move all SYSTEMLESS DevBase modifications to /data/devbase/system/.backup, before performing bind mounts, so original files will be used.

    In DevBase ROM v4.6+ there is a possibility to force CSC by renaming ZIP file name - this is the only case-sensitive variable which have to be put at the beginning of ZIP file name and must be folloed by "_" (due to the fact that there is a high risk that ZIP file name may contain CSC code accidentally). Example (to force CSC DBT): "DBT_G935Fxxx_DevBase_v6.x.zip"

    In DevBase ROM v5.6+ there is "xposed" option which allows you to force Xposed framework installation. It is NOT forced by default - you need to force it manually while installing ROM with Xposed first time, renaming ZIP's file name to e.g. "G935Fxxx_DevBase_v6.x_xposed.zip". Next ROM's updates will detect and apply Xposed profile automatically, unless you wipe /system - then auto detection is not possible.

    Notes related to encrypted devices:

    How to confirm that your data are encrypted:

    1. Go to TWRP and check if it is possible to mount /data. If NOT - all is ok :) "Failed to mount '/data' (invalid argument)" will be the a frequent message that you need to like in the future ;)

    How to update DevBase ROM to a newer version:

    1. Copy a newer DevBase ROM to extSdCard or OTG storage (you do NOT need to use "encrypt" option in ZIP file name again, if your device is encrypted already - it just remain encypted)
    2. Go to TWRP -> "Install" and flash ZIP file from extSdCard or OTG
    3. That's all :cool:

    The risk of data loss in case of encrypted devices, depending on the ROM scenario:

    1. DevBase only: VERY LOW RISK (*)
    2. Coming from other custom ROM with encrypted data - MEDIUM RISK (recommended backup)
    3. Installing other custom ROM over DevBase - MEDIUM RISK (recommended backup, anyway)
    4. Installing pure stock (using Odin) over DevBase (or over any other custom ROM) - VERY HIGH RISK (not recommended!)

    (*) There is still a risk to get into a bootloop if you install stuffs like: Xposed framework, incompatible Magisk or Xposed module, incompatible systemless MOD in /data/devbase/system, etc. In case of bootloop just try to use "rescue" option described above :)

    Notes related to EFS backup:

    During install, my ROM's installer always performs EFS backup to {storage}/.backup/efs (where {storage} may be /external_sd, /usb-otg, /sdcard - in the preferred order). It is recommended to copy EFS backup occasionally outside the phone and store in safe location (PC, OTG, etc). There are 2 backups - when you first time installed my ROM (efs_backup.tar.gz) and recent, created additionally, just in case (efs_recent.tar.gz). Most useful will be most probably the first one (efs_backup).

    You probably will never need these files, but sometimes s**t happens and restoring EFS backup may be the only one way to rescue your device!

    When do I need to restore EFS backup?
    - lost/invalid IMEI number
    - proper IMEI but unable to connect to the network
    - connected to the network but unable to make a call and/or transfer data
    - unrecoverable bootloop (even after clean DevBase install with default settings)

    NOTE: In contrast to many other custom ROMs - my installer uses gzip compression (*.img.gz) to store EFS backup(s). Restore command for your device is stored in txt file in the same directory with EFS backup. If you forgot command - you can read txt file containing proper command @ PC (Notepad) or even directly form TWRP using Terminal's 'cat' command, e.g.:

    Code:
    cat /external_sd/.backup/efs/efs_backup.txt

    NOTE:: Do not panic, read the txt file peacefully and type command exactly as it is in TWRP's Terminal, then tap blue [enter] button. After all - please reboot device. If the problem was EFS related - your device just has been rescued :cool:

    Installation:
    CWM / TWRP recovery (KNOX 0x1) - open file using "Install (Zip)" option and confirm operation. If you want to perform "clean install' - perform "wipe data/factory reset" BEFORE flashing Zip!

    Wipe data is NOT required if you are coming from stock ROM (already rooted) or a previous version of my DevBase (if you leave "Keep current CSC" option untouched in /options.prop or if you choose same CSC as you are currently using). In other cases - wipe data is highly recommended!

    I do not recommend using any additional "superwipes" or format /system before install my DevBase (my installer cleans your system well enough!).


    Credits:
    @samsung for awesome device & stock firmware base
    @Chainfire for systemless SuperSU and a lot of inspiration
    @topjohnwu for Magisk and another inspiration
    @rovo89 for Xposed framework & Xposed Installer app
    @Tkkg1994 for TWRP for Oreo (quota support)
    @Zackptg5, @osm0sis & @jcadduono for no-verity*


    Hit Thanks button if you like my work. If you really appreciate my work - feel free buy me a coffee/beer (or flowers/wine for my wife who is patiently enduring my hobbies) :) https://www.paypal.com/donate/?business=RFGVQYRC34RVQ&currency_code=EUR

    Due to the fact, that some countries banned PayPal - I have created also Patreon site: https://www.patreon.com/_alexndr
    63
    Download ROM

    >> G935FXXU8EUE1_DevBase_v7.4.zip << (updated Jul-10-2021, more info HERE)

    >> SM-G93xF/FD repository (recent ROMs & BL packages) << (MEGA)

    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.
    33
    Changelog


    v7.4 (starting from G935FXXU8EUE1 DevBase):

    - Fixed unzip issue which caused unexpected installation termination - applies to TWRP 3.5.0_9-1 and newer

    v7.3 (starting from G935FXXU7ETBD DevBase):

    - Fixed bootloop issue in case of Android Q and "noroot" scenario - thanks to @Zackptg5 for the up to date dm-verity disabler

    v7.2 (not released for G935F):

    - Fixed bootloop issue in case of Android Q and encrypted devices (applies to dirty update)

    v7.1 (starting from G935FXXS7ETA8 DevBase):

    - Potential fix for "make_ext4fs: not found" error in newer TWRP versions and in result "Failed! Not enough space..." message appears while applying CSC during install (applies to N960x devices)

    v7.0 (not released for G935F):

    - Initial support for Android Q / system-as-root devices

    v6.0 (starting from G935FXXU3ERL3 DevBase):

    - Introduced logging entire installation process (to devbase_install.log file, placed in /data or /cache in case of encrypted devices). These logs may significantly increase the possibility of my help in case of problems with/after installation
    - Major imrovements/bugfixes/optimizations related to Android Pie support (e.g. takes care about special SELinux contexts for /odm content, introduced in Pie)
    - Removed SuperSU support. Changed allowed "root" variable value in options.prop to true/false (backward compatible with old options.prop file)
    - Removed "skipblcp" option - baseband/modem will be always updated, bootloader need to be flashed separately (update is usually not mandatory)

    v5.9 (starting from G935FXXU2ERG2 DevBase):

    - Changed device detection method to bootloader's prefix (instead of ro.product.*)
    - Improved support for applying custom mods automatically at each ROM's install/update, introduced in v5.6 (added support for etc, fonts, media & usr directories in {storage}/devbase/system)
    - Added support for custom {storage}/devbase/post-installation.sh script

    v5.8 (starting from G935FXXU2EREM DevBase):

    - Improved unzip_flash function in the installer to detect properly more flashing errors (e.g. EXT4 partition mismatch)
    - Changed /odm flashing method to file based due to potential /odm partition mismatch (applies to carrier branded treble devices)
    - Minor optimizations/improvements in the installer (this time mainly to improve installation speed)
    - Busybox has been removed from /system/xbin to run properly some banking apps

    v5.7 (starting from G935FXXU2ERD5 DevBase):

    - Improved/expanded built-in RMM lock prevention (thanks to @jesec for idea of overriding properties via factory.prop)
    - OEM unlock status will always be displayed correctly in Developer options (to avoid confusion) with stock kernel included in the DevBase ROM

    v5.6 (starting from G935FXXS2DRDC DevBase):

    - Added "App Lock" feature (Settings -> Advanced features)
    - Added Xposed framework as installation option (it is NOT forced by default - you need to force it manually while installing with Xposed first time, e.g. by "xposed" string in ZIP's file name, but next ROM's updates will detect and apply Xposed profile automatically, unless you wipe /system - then auto detection is not possible)
    - Added support for applying custom mods automatically at each ROM's install/update by placing modded apps in {storage}/devbase/system/(priv-)app or placing modded framework files in {storage}/devbase/system/framework (where {storage} may be: /sdcard, /external_sd or /usb-otg)

    v5.5 (starting from G935FXXS2DRCC DevBase):

    - Added support for flashing optional, CSC related partitions ($OMR, $PRELOAD)
    - Added possibility to update recovery (optional, performs update if exists $NAME/images/recovery.img)
    - Partition(s) may be wiped only by writing new block's image
    - Minor optimizations / improvements in the installer

    v5.4 (starting from G935FXXS2DRC3 DevBase):

    - Big step forward in DevBase ROM customization ability - almost all current ROM features (hidden up to v5.3) have been moved to options.prop (you will be able to easy add new or remove current feature)
    - Return to dm-verity-opt-encrypt boot patcher if necessary (wherever it works well, there are still devices which need "no_verity" function introduced in v5.1)
    - Initial support for forcing (changing) CSC in case of devices with /odm as CSC location
    - Minor optimizations / improvements in the installer

    v5.3 (not released for G93xx):

    - Improved algorithm of search & change "ro.security.vaultkeeper.feature" property to 0 (/system & /vendor)

    v5.2 (not released for G93xx):

    - Added support for devices with /odm as CSC location
    - Added support for flashing $ODM, $VENDOR, $KEYSTORAGE, $DQMDBG images
    - Added support for custom debloat list and custom CscFeature list in options.prop
    - options.prop file format has been changed to CR/LF (Windows) - more noob-proof solution, user can edit a copy of options.prop file even in Windows Notepad (the installer still supports ANY text format of options.prop file - Win/Unix/MAC)

    v5.1 (starting from G935FXXU2DRB7 DevBase):

    - Created new "no_verity" function in the installer, compatible with Samsung's Oreo, based on @Chainfire's patch tool (no-verity-opt-encrypt has been removed). In case of Oreo & Magisk as root solution - "no_verity" function will be used as additional support for patching fstab* (as long as Magisk does not do it correctly)

    v5.0 (not released for G93xx):

    - SYSTEMLESS DevBase has been removed due to the fact, that in case of modern devices/firmwares we need to perform many changes physically in /system anyway, so it loses the sense of use here. If you liked it - you can still install it separately from HERE (it does not need to be re-installed after ROM update as it is installed in /data)
    - Added "skipblcp" option to let users skip BL/CP update (additionally it disables auto-reboot when the installer finished work as it is just not necessary then)
    - Added "phydebloat" option to let users choose beetween virtual and physical debloat (to get more space in /system)
    - Other (minor) optimizations & improvements

    v4.6 (starting from G935FXXU2DRAG DevBase):

    - Initial support for devices with /system/omc as CSC location
    - SYSTEMLESS DevBase updated to v2.0 (see changelog HERE)
    - Added possibility to force CSC by renamig ZIP filename. Due to the fact that trere are many different CSC and it is possible that $ZIPNAME may contain a CSC accidentally - to force CSC you need to put CSC in $ZIPNAME at the beginning and CSC must be followed by "_". Example $ZIPNAME (to force CSC DBT): "DBT_G93xFXXU1xxxx_DevBase.zip"
    - Added auto efs-backup during install. Installer will create first backup (efs_backup.img.gz) and recent backup (efs_recent.img.gz). The installer will prefer external storage as default backup location (/external_sd or /usb-otg) due to encryption support. MD5 sum and restore command will be stored in efs_backup.txt or efs_recent.txt file
    - Other (minor) optimizations & improvements, e.g. added more error messages in case of something went wrong during install

    v4.5 (starting from G935FXXU1DQLF DevBase):

    - Added new "rescue" option (readable only as string in ZIP file name due to the fact, that we will need this option rarely). It can be a potentially very helpful option in case of bootloop @ encrypted device, caused by a systemless mod/module/xposed stored on /data (without access to /data from TWRP) - more info in post #1
    - SYSTEMLESS DevBase updated to v1.14 (see changelog HERE)

    v4.4 (starting from G935FXXU1DQL8 DevBase):

    - Added new "encrypt" option (readable only as string in ZIP file name due to the fact, that we need to do it only once). Now you can easy encrypt all data in your device, just during the ROM upgrade (without data loss).
    - SYSTEMLESS DevBase updated to v1.13 (see changelog HERE)

    v4.3 (starting from G935FXXS1DQF6 DevBase):

    - "root.supersu" & "root.magisk" variables in the options.prop file have been replaced by one "root" variable (dropped possibility to install both - SuperSU & Magisk - due to the fact that Magisk v13+ does not support SuperSU as root solution)
    - SYSTEMLESS DevBase updated to v1.9 v1.12 (see changelog HERE)

    v4.2 (starting from G935FXXU1DQD7 DevBase):

    - Added possibility to add systemlessly NEW apps to /data/devbase/system/(priv-)app (up to 5 apps in "app" & 5 apps in "priv-app"). The only condition is that you need to rename its directories to CustomApp[1...5] (e.g. CustomApp1, CustomApp2, etc..). These apps will remain even if you flash a new DevBase as corresponding dummy directories will exist in future DevBase updates
    - In case of DevBase update or re-installation - installer will not remove your custom entries in /data/devbase/system/build.prop and in *.xml files placed in /data/devbase/system/csc
    - SYSTEMLESS DevBase updated to v1.6 v1.8 (see changelog HERE)

    v4.1 (starting from G935FXXU1DQD1 DevBase):

    - Added full Magisk support - MagiskSU is now default root solution (ROM should pass SafetyNet with Magisk Hide enabled in settings)
    - Since systemless Xposed does not need to be re-installed every new DevBase I will release (in case of using the same root solution) - it makes no sense to keep it anymore as installation option
    - SYSTEMLESS DevBase updated to v1.5 (see changelog HERE)

    v4.0 (not released for G93xx):

    - A huge step in the systemless direction! DevBase installer now installs pure odexed stock ROM (just slightly debloated), then systemless SuperSU, then systemless DevBase, then (optionally) systemless Xposed
    - All Knox related applications are available again (except SecurityLogAgent, to prevent annoying security alerts)
    - Fake KNOX 0x0 status (check it in PhoneINFO app) - most of Knox related apps should work again, like in case of untouched KNOX flag
    - All mods known from previous DevBase versions (up to v3.x) now are applied systemlessly - all modified files (including modded apps) are placed in /data/devbase/system instead of physical /system partition. Mods section (#4) has been updated to install mods to /data/devbase/system/(priv-)app if systemless DevBase has been detected (otherwise will be installed as usual, to /system)
    - Deodex on-the-fly feature has been removed. If you really need deodexed ROM - you can install someone else's deodexed ROM, then systemless DevBase as an overlay
    - Init.d support has been removed as it is deprecated (use su.d instead)

    v3.8 (not released for G93xx):

    - Added hexpatch to root_from function (support for SM-N930x, thanks to @Chainfire)

    v3.7 (not released for G93xx):

    - Another major improvement/bugfix in deodex_from function (full support for 64 bit OS)

    v3.6 (not released for G93xx):

    - Major improvement/bugfix in deodex_from function (added "-g" switch to zip command - finally no issues in case of deodexed Android 6.0.1)

    v3.5 (not released for G93xx):

    - Improved root_from function (Android 5.1+) - added "setprop selinux.reload_policy 1" removal from init.rc (thanks to @Chainfire)
    - Fixed bug in new alghoritm for checking whether stock recovery should be installed or not (introduced in v3.4)
    - Added new functionality - installer will store a copy of patched stock kernel in /data for those who flashed custom kernel but for some reasons want to revert to the stock kernel (Android 5.1+)

    v3.4 (not released for G93xx):

    - Completely changed alghoritm for checking whether stock recovery should be installed or not (it applies to FlashFire users). Now it depends on previously used recovery (instead of checking KNOX flag which was not 100% reliable across devices/recoveries)

    v3.32 (not released for G93xx):

    - Updated set_csc, kcsc_backup, kcsc_restore functions to support more devices
    - Updated partition detection algorithm to support more devices
    - Fixed path to options.prop file placed in external sdcard in case of updating Marshmallow while using FlashFire
    - Minor intaller's optimizations/bugfixes

    v3.31 (not released for G93xx):

    - Potential fix for reported problems with root (rare cases)

    v3.3 (not released for G93xx):

    - Improved method of reading options from ZIP file name (previous was directory/path sensitive also)
    - Added support to mod_csc function for other than UNIX text format (it's a little ridiculous, but in case of some CSCs - original /system/csc/other.xml file has Windows or MAC text format!)
    - Initial support for options.prop file in CRLF text format (DOS/Windows)

    v3.21 (not released for G93xx):

    - Fixed installer's issue if there is a [space] present in ZIP filename or a directory containing DevBase (see #1728)

    v3.2 (not released for G93xx):

    - Another improvements in add_initd function (details - see v1.3)
    - Improvements in set_perm, set_perm_rec and root_from functions (recovery-independent structure)
    - Improvements in deodex_from function related to Android MM
    - New get_con function in the main sh script (useful for devs)
    - BusyBox updated to 1.22.1 (bionic) [no, this is NOT a mistake!]
    - Minor intaller's optimizations/bugfixes

    v3.1 (not released for G93xx):

    - Significantly improved "add_initd" function in the update-binary shell script. Added support for (probably) all available Samsung's platforms (e.g. Exynos) and all available firmwares (based on Android 4.4+)
    - In case of installation with Xposed framework installer checks if Xposed Installer app is present in /data/app and installs it automatically if necessary
    - Minor intaller's optimizations/improvements

    v3.0 (not released for G93xx):

    - Entire installer has been re-written from the scratch! All "magic" moved to update-binary which is a shell script. It opens up new possibilities never possible before!
    - Introduced new customization method - you can change most frequently switched options just by renaming installer's ZIP file name. Currently supported "strings" in the file name:
    "noroot" (means "do not root"), "deodex", "xposed", "initd" (no other comments are required, I hope..)
    - Starting from v3.0 init.d support is disabled by default

    v2.3 (not released for G93xx):

    - Added option to install suitable Xposed framework in one step while installing DevBase (for maximum comfort). There is a new xframework.sh script - device independent structure and full Android 5.1+/6.0+ support. Backup method is compatible with well known Xposed uninstallers (tested with @wanam's)

    v2.2 (not released for G93xx):

    - Significantly improved root_supersu.sh script - device independent structure and full Android 5.1+/6.0+ suport including on the fly kernel/ramdisk/sepolicy patching if necessary. SU binaries are still copied to /system as it is the best choice in case of custom ROMs
    - Changed order of performed operations in the updater-script due to new root_supersu.sh script advantages
    - Installer wipes partitions designated for RAW content (e.g. kernel / recovery image) before writing to them
    - Minor additions in dex_injector.sh script related to Android 6.0+

    v2.11 (not released for G93xx):

    - Fixed some minor installer's issues ("set_perm" function in set_csc.sh did not work correctly while using wildcards in the path (it was exclusively FlashFire issue! no problem with TWRP / CWM). Fortunately - only /system/etc/csc_*.txt were really "affected" - it didn't cause real issues as these files are empty)

    v2.1 (not released for G93xx):

    - As some people felt a bit disapointed / worried about DevBase v2.0 ROM file size - finally I have decided to debloat stock system.img (in same way as in v1.x => "Safe De-Bloat") and remove option to install all available bloatware. ROM file size has been reduced from about ~2GB to about ~1.6GB. Note for Devs / Chefs: Do not use Windows tools - you need Linux with "selinux" package installed (to handle SELinux contexts) to mount (rw) system.img safely. If you want to add / change any system content this way - remember about proper chown/chmod/chcon
    - Added device check during install as flashing directly to EMMC block is potentially more risky for "other" devices. Installer will abort installation if device is not N910F (trlte(xx)). If you want to try this ROM on other N4 devices - you need to remove this check manually from updater-script (it is more conscious procedure)

    v2.0 (not released for G93xx):

    - Completely new concept of ROM development that makes it easy to build most tuned and nuanced custom ROMs. No more arduous manual analysis or (often) invalid permissions / SELinux contexts taken from a kitchen. The main idea is to flash original, stock /system image as EMMC block (in same way as PC Odin does) instead of extracting ZIP's contents to mounted partition, then setting permissions, then creating symlinks, etc. However, it requires more knowledge related to sh scripts as ALL necessary changes need to be done on the fly, while installing (e.g. by injecting modified classes.dex and/or modified images/xmls to /res/../* into an apk). There are no limits, all depends on your creativity!
    - One common ZIP installer for Odexed and Deodexed ROM - you can control it by new "deodexed.rom" entry in options.prop (there is new dex_injector.sh script which can deodex on the fly the whole ROM using previously processed classes.dex files)
    - ROM is still Safe De-Bloated by default but removing bloatware during install is not mandatory - you can control it by new "safe.debloat" entry in options.prop (there is new protection included to avoid overfilling /system in case of large size of additional MODs and/or large multi CSC package)
    - Major improvements in csc_detect.sh script - it is able to detect previous CSC even in cases of flashing over e.g. CM based ROM and/or previously formatted system partition. However, if detected CSC is NOT included in my multi CSC package, in both mentioned cases it is still not possible to keep detected CSC (as there is no CSC related content to backup / restore)
    - Improvements in all sh scripts - additional "metadata" entries in updater-script (related to processed contents) are not required
    - Improvements in root_supersu.sh script - it is suitable for 32 and 64 bit OS
    - Added full zip support from the command line

    v1.x (initial version, further improvements, not released for G93xx):

    - Built without using a kitchen. All set_metadata* / symlink entries are result of arduous manual analysis. For more info about the method - see hidden content for Devs / Chefs in THIS thread.
    - New customization method without using Aroma (options.prop)
    - Many useful scripts for easy installation: CSC applying/autodetection, backup/restore of security files, backup/restore of existing CSC package, XML modding on the fly, root, init.d support
    - Many small changes and improvements "in the meantime" which I simply do not remember...
    - Safe De-Bloated (see post #1 for details)
    30
    Thread has been updated, U2ERG2 DevBase v5.9 (July security patches, changelist 13895453) :cool:

    As usual - you can dirty flash it over previous version -> DONE, that's all :good: :cool:

    (there is no need to flash anything else - this ROM is all-in-one combo and contains suitable bootloader & modem already)

    Download ROM:

    S7 Edge (SM-G935F/FD):

    Changelog (recent changes):
    v5.9 (starting from G93xFXXU2ERG2 DevBase):

    - Changed device detection method to bootloader's prefix (instead of ro.product.*)
    - Improved support for applying custom mods automatically at each ROM's install/update, introduced in v5.6 (added support for etc, fonts, media & usr directories in {storage}/devbase/system)
    - Added support for custom {storage}/devbase/post-installation.sh script

    Important note: I'm extremely busy in real life last days... I have several unanswered PMs since 3 weeks... Thanks in advance for understanding that I'm temporarily not able to answer immediately someone's post and/or message :)
    28
    Thread has been updated, U3ERL3 DevBase v6.0 (Release Candidate 8, December security patches, changelist 14843133) :cool:

    As usual - you can dirty flash it over previous version -> DONE, that's all :good: :cool:

    (you can find bootloader in my updated repository, but BL update is not mandatory)

    Download ROM:

    SM-G935F/FD:


    v6.0 CHANGELOG (recent changes, comparing to v5.9):

    - Introduced logging entire installation process (to devbase_install.log file, placed in /data or /cache in case of encrypted devices). These logs may significantly increase the possibility of my help in case of problems with/after installation
    - Major imrovements/bugfixes/optimizations related to Android Pie support (e.g. takes care about special SELinux contexts for /odm content, introduced in Pie)
    - Removed SuperSU support. Changed allowed "root" variable value in options.prop to true/false (backward compatible with old options.prop file)
    - Removed "skipblcp" option - baseband/modem will be always updated, bootloader need to be flashed separately (update is usually not mandatory)