How To Guide BANKING APPS: How to modify build.Prop using recovery (and more...)

Search This thread

Moto-J

Member
Sep 9, 2022
48
16
Ok, after some reading, testing and trying, my conclusion is that it is not possible to tweak a running system with not triggering SELinux.

Though, for letting banking apps work it is only needed to modify the build.prop in /system, which is in fact possible, even without TWRP.

So, this is what I am doing now:

Reboot into (LOS) recovery and then in the recovery menu:
Goto “Advanced”
Mount /system
Enable adb

From your pc with adb etc.. installed:
Code:
adb shell mount -o rw,remount /mnt/system
adb shell sed -i 's/ro.debuggable=1/ro.debuggable=0/g' /mnt/system/system/build.prop
adb shell sed -i 's/ro.build.type=userdebug/ro.build.type=user/g' /mnt/system/system/build.prop
adb reboot

That's it, banking apps working!
 
Last edited:

Moto-J

Member
Sep 9, 2022
48
16
Okay, did some further research and in fact, found a solution for my "tweaking".
In the past I used TWRP recovery, where it is very easy to run shell scripts etc... as root.
Though, also other recoveries with adb functionality can be used for some tweaking around.

Using the following bat file in Windows now for removing some apps and changing build.prop:
Code:
:: Moto G100 Tweak Script
:: Last modified 11-12-2022
:: Moto-J

:: ------------------------------------------------------------

@echo off
Setlocal EnableDelayedExpansion
color 0A
cls

echo MOTO G100 TWEAK SCRIPT
echo.
echo IMPORTANT:
echo - First boot into recovery
echo - Goto advanced and mount /system
echo - Goto advanced and enable adb
echo.

pause

echo.
echo Connecting device...

adb devices

:: ------------------------------------------------------------

echo|set /p="Mounting system partitions.......... "

adb shell mount -o rw,remount /mnt/system > nul 2>&1

:: /dev/block/dm-6 = /product
:: /dev/block/dm-7 = /system
:: /dev/block/dm-8 = /system_ext
:: /dev/block/dm-9 = /vendor

adb shell mkdir /mnt/product > nul 2>&1
adb shell mkdir /mnt/system > nul 2>&1
adb shell mkdir /mnt/system_ext > nul 2>&1
adb shell mkdir /mnt/vendor > nul 2>&1

adb shell mount /dev/block/dm-6 /mnt/product > nul 2>&1
adb shell mount /dev/block/dm-7 /mnt/system > nul 2>&1
adb shell mount /dev/block/dm-8 /mnt/system_ext > nul 2>&1
adb shell mount /dev/block/dm-9 /mnt/vendor > nul 2>&1

echo done

:: ------------------------------------------------------------

echo|set /p="Removing some packages.............. "

:: /product/app
adb shell rm -rf /mnt/product/app/Backgrounds > nul
adb shell rm -rf /mnt/product/app/Camera2 > nul
adb shell rm -rf /mnt/product/app/Gallery2 > nul
adb shell rm -rf /mnt/product/app/Jelly > nul
adb shell rm -rf /mnt/product/app/PhotoTable > nul
adb shell rm -rf /mnt/product/app/PowerOffAlarm > nul

:: /product/priv-app
adb shell rm -rf /mnt/product/priv-app/Eleven > nul
adb shell rm -rf /mnt/product/priv-app/OneTimeInitializer > nul

:: /system/app
adb shell rm -rf /mnt/system/system/app/BasicDreams > nul
adb shell rm -rf /mnt/system/system/app/BluetoothMidiService > nul
adb shell rm -rf /mnt/system/system/app/BookmarkProvider > nul
adb shell rm -rf /mnt/system/system/app/CaptivePortalLogin > nul
adb shell rm -rf /mnt/system/system/app/CarrierDefaultApp > nul
adb shell rm -rf /mnt/system/system/app/CompanionDeviceManager > nul
adb shell rm -rf /mnt/system/system/app/EasterEgg > nul
adb shell rm -rf /mnt/system/system/app/HTMLViewer > nul
adb shell rm -rf /mnt/system/system/app/PrintRecommendationService > nul
adb shell rm -rf /mnt/system/system/app/SimAppDialog > nul
adb shell rm -rf /mnt/system/system/app/Stk > nul
adb shell rm -rf /mnt/system/system/app/WallpaperBackup > nul

:: /system/priv-app
adb shell rm -rf /mnt/system/system/priv-app/BackupRestoreConfirmation > nul
adb shell rm -rf /mnt/system/system/priv-app/CallLogBackup > nul
adb shell rm -rf /mnt/system/system/priv-app/InputDevices > nul
adb shell rm -rf /mnt/system/system/priv-app/LiveWallpapersPicker > nul
adb shell rm -rf /mnt/system/system/priv-app/ManagedProvisioning > nul
adb shell rm -rf /mnt/system/system/priv-app/SharedStorageBackup > nul
adb shell rm -rf /mnt/system/system/priv-app/StatementService > nul
adb shell rm -rf /mnt/system/system/priv-app/Tag > nul
adb shell rm -rf /mnt/system/system/priv-app/VpnDialogs > nul

:: /system_ext/app
adb shell rm -rf /mnt/system_ext/app/datastatusnotification > nul
adb shell rm -rf /mnt/system_ext/app/IfaaService > nul
adb shell rm -rf /mnt/system_ext/app/SoterService > nul

:: /system_ext/priv-app
adb shell rm -rf /mnt/system_ext/priv-app/LineageSetupWizard > nul
adb shell rm -rf /mnt/system_ext/priv-app/Seedvault > nul
adb shell rm -rf /mnt/system_ext/priv-app/Updater > nul

:: /vendor/app
adb shell rm -rf /mnt/vendor/app/TimeService > nul

echo done

:: ------------------------------------------------------------

echo|set /p="Modifying /system/build.prop........ "

:: First remove the lines if available

adb shell sed -i '/^# Modified settings/d' /mnt/system/system/build.prop || true

adb shell sed -i '/^ro.debuggable/d' /mnt/system/system/build.prop || true
adb shell sed -i '/^ro.build.type/d' /mnt/system/system/build.prop || true

adb shell sed -i '/^fw.show_multiuserui/d' /mnt/system/system/build.prop || true
adb shell sed -i '/^fw.power_user_switcher/d' /mnt/system/system/build.prop || true
adb shell sed -i '/^fw.show_hidden_users/d' /mnt/system/system/build.prop || true

adb shell sed -i '/^ro.backup.disable/d' /mnt/system/system/build.prop || true

adb shell sed -i '/^persist.debug.wfd.enable/d' /mnt/system/system/build.prop || true
adb shell sed -i '/^debug.sf.enable_hwc_vds/d' /mnt/system/system/build.prop || true

adb shell sed -i '/^# end of file/d' /mnt/system/system/build.prop || true


:: And now add them at the end of the file

adb shell sed -i -e '$a# Modified settings' /mnt/system/system/build.prop

:: Let banking apps work
adb shell sed -i -e '$aro.debuggable=0' /mnt/system/system/build.prop
adb shell sed -i -e '$aro.build.type=user' /mnt/system/system/build.prop

:: Disable user switching
adb shell sed -i -e '$afw.show_multiuserui=0' /mnt/system/system/build.prop
adb shell sed -i -e '$afw.power_user_switcher=0' /mnt/system/system/build.prop
adb shell sed -i -e '$afw.show_hidden_users=0' /mnt/system/system/build.prop

:: Disable backup provider
adb shell sed -i -e '$aro.backup.disable=1' /mnt/system/system/build.prop

:: Disable Mira Cast (Wifi Direct) eating your battery
adb shell sed -i -e '$apersist.debug.wfd.enable=0' /mnt/system/system/build.prop
adb shell sed -i -e '$adebug.sf.enable_hwc_vds=0' /mnt/system/system/build.prop

adb shell sed -i -e '$a# end of file' /mnt/system/system/build.prop


:: THE RESULT SHOULD BE AT THE END OF BUILD.PROP:

:: # Modified settings
:: ro.debuggable=0
:: ro.build.type=user
:: fw.show_multiuserui=0
:: fw.power_user_switcher=0
:: fw.show_hidden_users=0
:: ro.backup.disable=1
:: persist.debug.wfd.enable=0
:: # end of file


:: For debugging purposes:
adb pull /mnt/system/system/build.prop > nul 2>&1
del -f build.system.prop > nul 2>&1
ren build.prop build.system.prop > nul 2>&1

echo done

:: ------------------------------------------------------------

echo|set /p="Modifying /vendor/build.prop........ "

:: First remove the lines if available

adb shell sed -i '/^# Modified settings/d' /mnt/vendor/build.prop || true

:: Display
adb shell sed -i '/^debug.hwui.disable_vsync/d' /mnt/vendor/build.prop || true
adb shell sed -i '/^debug.hwui.render_dirty_regions/d' /mnt/vendor/build.prop || true
adb shell sed -i '/^persist.sys.use_dithering/d' /mnt/vendor/build.prop || true
adb shell sed -i '/^ro.sf.lcd_density/d' /mnt/vendor/build.prop || true

:: VoLTE (only what is missing)
adb shell sed -i '/^persist.dbg.ims_volte_enable/d' /mnt/vendor/build.prop || true
adb shell sed -i '/^persist.dbg.volte_avail_ovr/d' /mnt/vendor/build.prop || true
adb shell sed -i '/^persist.dbg.vt_avail_ovr/d' /mnt/vendor/build.prop || true
adb shell sed -i '/^persist.dbg.wfc_avail_ovr/d' /mnt/vendor/build.prop || true
adb shell sed -i '/^persist.vendor.radio.calls.on.ims/d' /mnt/vendor/build.prop || true
adb shell sed -i '/^persist.vendor.data.iwlan.enable/d' /mnt/vendor/build.prop || true

adb shell sed -i '/^# end of file/d' /mnt/vendor/build.prop || true


:: And now add them at the end of the file

adb shell sed -i -e '$a# Modified settings' /mnt/vendor/build.prop

:: Display
adb shell sed -i -e '$adebug.hwui.disable_vsync=true' /mnt/vendor/build.prop
adb shell sed -i -e '$adebug.hwui.render_dirty_regions=false' /mnt/vendor/build.prop
adb shell sed -i -e '$apersist.sys.use_dithering=0' /mnt/vendor/build.prop
adb shell sed -i -e '$aro.sf.lcd_density=460' /mnt/vendor/build.prop

:: VoLTE (only what is missing)
adb shell sed -i -e '$apersist.dbg.ims_volte_enable=1' /mnt/vendor/build.prop
adb shell sed -i -e '$apersist.dbg.volte_avail_ovr=1' /mnt/vendor/build.prop
adb shell sed -i -e '$apersist.dbg.vt_avail_ovr=1' /mnt/vendor/build.prop
adb shell sed -i -e '$apersist.dbg.wfc_avail_ovr=1' /mnt/vendor/build.prop
adb shell sed -i -e '$apersist.vendor.radio.calls.on.ims=1' /mnt/vendor/build.prop

adb shell sed -i -e '$a# end of file' /mnt/vendor/build.prop


:: THE RESULT SHOULD BE AT THE END OF BUILD.PROP:

:: # Modified settings
:: debug.hwui.disable_vsync=true
:: debug.hwui.render_dirty_regions=false
:: persist.sys.use_dithering=0
:: ro.sf.lcd_density=460
:: persist.dbg.ims_volte_enable=1
:: persist.dbg.volte_avail_ovr=1
:: persist.dbg.vt_avail_ovr=1
:: persist.dbg.wfc_avail_ovr=1
:: persist.vendor.radio.calls.on.ims=1
:: # end of file

:: FOR VOLTE CHECK, DIAL *#*#4636#*#*, PHONE INFORMATION - 3DOTS MENU - IMS SERVICE STATUS
::
:: Complete VoLTE settings:
::
:: # Debug Options
:: persist.dbg.ims_volte_enable=1
:: persist.dbg.volte_avail_ovr=1
:: persist.dbg.vt_avail_ovr=1
:: persist.dbg.wfc_avail_ovr=1
::
:: # Data Options
:: # Commented this line out as it was reported to break WiFi calling on some carriers.
:: # persist.data.iwlan.enable=true
::
:: # Radio Options
:: persist.radio.rat_on=combine     (OR persist.vendor.radio.rat_on=combine)
:: persist.radio.data_ltd_sys_ind=1 (OR persist.vendor.radio.data_ltd_sys_ind=1)
:: persist.radio.data_con_rprt=1    (OR persist.vendor.radio.data_con_rprt=1)
:: persist.radio.calls.on.ims=1     (OR persist.vendor.radio.calls.on.ims=1)


:: For debugging purposes:
adb pull /mnt/vendor/build.prop > nul 2>&1
del -f build.vendor.prop > nul 2>&1
ren build.prop build.vendor.prop > nul 2>&1

echo done

:: ------------------------------------------------------------

echo|set /p="Proper unmount partitions........... "

adb shell umount /mnt/product > nul 2>&1
adb shell umount /mnt/system > nul 2>&1
adb shell umount /mnt/system_ext > nul 2>&1
adb shell umount /mnt/vendor > nul 2>&1

echo done

:: ------------------------------------------------------------

echo.
echo Rebooting phone...

pause

adb reboot

As you can see I am using another approach now, as I am first deleting some lines in build.prop and later add them again at the end of the file with some additional lines for disabling user switching, Mira Cast and backup.

I am updating LOS not by using the updater app, though through fastboot/ recovery. As I am using the script above and therefor have to connect to my pc and reboot into recovery, it is much easier to do everything the same time using the commandline.

So this is my approach for updating now:
Code:
UPDATE LINEAGEOS

1.    Update recovery

Get latest Lineage from here: https://download.lineageos.org/nio

Reboot to bootloader

fastboot devices
fastboot flash boot <recovery_filename>.img

for example:
fastboot flash boot_a lineage-19.1-20221210-recovery-nio.img
fastboot flash boot_b lineage-19.1-20221210-recovery-nio.img

fastboot reboot recovery

2.    Update LOS

Get latest Lineage from here: https://download.lineageos.org/nio

Reboot to recovery

In recovery:
Goto “Apply update”
Goto “Apply from ADB”

adb sideload <filename>.zip

for example:
adb sideload lineage-19.1-20221210-nightly-nio-signed.zip

In recovery:
Goto “Advanced”
Goto “Reboot to recovery”

3.    Tweak script

Reboot to recovery:

In recovery:
Goto “Advanced”
Goto “Mount /system”
Goto “Enable ADB”

Run tweak.bat and reboot

Though I have the feeling most people are not tweaking anymore, I hope it helps for the few people still interested!

For me the result is a more lean system, working banking apps and HD calling (VoLTE), and it is just nice to do... ;-)
 
Last edited:

Moto-J

Member
Sep 9, 2022
48
16
Update 21-01-2023:

After some boot issues I finally found out what was the issue of my problems when using the setup mentioned above. As we have a device with A/B, after flashing the update, the active partition is automatically switched. This happens when flashing, so I had to reboot to recovery again to actually tweak the right partition.

So, a system update for me is now:


Code:
Reboot into recovery

CHECK WHICH IS THE ACTIVE PARTITION!!

Goto “Apply Update”
Goto “Apply from adb”

adb sideload <lineageos.zip>

Goto “Advanced”
Goto “Reboot to recovery”

CHECK WHICH IS THE ACTIVE PARTITION, SHOULD BE CHANGED!!

In recovery:
Goto “Advanced”
Goto “Mount /system”
Goto “Enable ADB”

Run tweak.bat


And the tweak script (a bat file) I am using now, does have the following code:


Code:
:: Moto G100 Tweak Script
:: Last modified 21-01-2023
:: Moto-J

:: ------------------------------------------------------------

@echo off
Setlocal EnableDelayedExpansion
color 0A
cls

echo MOTO G100 TWEAK SCRIPT
echo.
echo IMPORTANT:
echo - First boot into recovery
echo - Goto advanced and mount /system
echo - Goto advanced and enable adb
echo.

pause

echo.
echo ------------------------------------
echo Connecting device...................
echo ------------------------------------
echo.
echo Terminal output will be displayed here:

adb devices

:: ------------------------------------------------------------

echo ------------------------------------
echo Mounting system partitions..........
echo ------------------------------------
echo.
echo Terminal output will be displayed here:

:: /dev/block/dm-6 = /product
:: /dev/block/dm-7 = /system
:: /dev/block/dm-8 = /system_ext
:: /dev/block/dm-9 = /vendor

adb shell mkdir /mnt/product > nul 2>&1
adb shell mkdir /mnt/system > nul 2>&1
adb shell mkdir /mnt/system_ext > nul 2>&1
adb shell mkdir /mnt/vendor > nul 2>&1

adb shell mount -o rw,remount /mnt/system

adb shell mount /dev/block/dm-6 /mnt/product
adb shell mount /dev/block/dm-7 /mnt/system
adb shell mount /dev/block/dm-8 /mnt/system_ext
adb shell mount /dev/block/dm-9 /mnt/vendor

echo.
echo done
echo.
pause
echo.

:: ------------------------------------------------------------

echo ------------------------------------
echo Removing some packages..............
echo ------------------------------------
echo.
echo Terminal output will be displayed here:

:: /product/app
adb shell rm -rf /mnt/product/app/Aperture
adb shell rm -rf /mnt/product/app/Backgrounds
adb shell rm -rf /mnt/product/app/Gallery2
adb shell rm -rf /mnt/product/app/Jelly
adb shell rm -rf /mnt/product/app/PhotoTable
adb shell rm -rf /mnt/product/app/PowerOffAlarm

:: /product/priv-app
adb shell rm -rf /mnt/product/priv-app/Eleven
adb shell rm -rf /mnt/product/priv-app/OneTimeInitializer

:: /system/app
adb shell rm -rf /mnt/system/system/app/BasicDreams
adb shell rm -rf /mnt/system/system/app/BluetoothMidiService
adb shell rm -rf /mnt/system/system/app/BookmarkProvider
adb shell rm -rf /mnt/system/system/app/CaptivePortalLogin
adb shell rm -rf /mnt/system/system/app/CarrierDefaultApp
adb shell rm -rf /mnt/system/system/app/CompanionDeviceManager
adb shell rm -rf /mnt/system/system/app/EasterEgg
adb shell rm -rf /mnt/system/system/app/HTMLViewer
adb shell rm -rf /mnt/system/system/app/PrintRecommendationService
adb shell rm -rf /mnt/system/system/app/SimAppDialog
adb shell rm -rf /mnt/system/system/app/Stk
adb shell rm -rf /mnt/system/system/app/WallpaperBackup

:: /system/priv-app
adb shell rm -rf /mnt/system/system/priv-app/BackupRestoreConfirmation
adb shell rm -rf /mnt/system/system/priv-app/CallLogBackup
adb shell rm -rf /mnt/system/system/priv-app/InputDevices
adb shell rm -rf /mnt/system/system/priv-app/LiveWallpapersPicker
adb shell rm -rf /mnt/system/system/priv-app/ManagedProvisioning
adb shell rm -rf /mnt/system/system/priv-app/SharedStorageBackup
adb shell rm -rf /mnt/system/system/priv-app/StatementService
adb shell rm -rf /mnt/system/system/priv-app/Tag
adb shell rm -rf /mnt/system/system/priv-app/VpnDialogs

:: /system_ext/app
adb shell rm -rf /mnt/system_ext/app/datastatusnotification
adb shell rm -rf /mnt/system_ext/app/IfaaService
adb shell rm -rf /mnt/system_ext/app/SoterService

:: /system_ext/priv-app
:: adb shell rm -rf /mnt/system_ext/priv-app/LineageSetupWizard >> NEEDED FOR A CORRECT FIRST SETUP!
adb shell rm -rf /mnt/system_ext/priv-app/Seedvault
adb shell rm -rf /mnt/system_ext/priv-app/Updater

:: /vendor/app
adb shell rm -rf /mnt/vendor/app/TimeService

echo.
echo done
echo.
pause
echo.

:: ------------------------------------------------------------

echo ------------------------------------
echo Modifying /system/build.prop........
echo ------------------------------------
echo.
echo Terminal output will be displayed here:

:: First remove the lines if available

adb shell sed -i '/^# Modified settings/d' /mnt/system/system/build.prop

adb shell sed -i '/^ro.debuggable/d' /mnt/system/system/build.prop
adb shell sed -i '/^ro.build.type/d' /mnt/system/system/build.prop

adb shell sed -i '/^fw.show_multiuserui/d' /mnt/system/system/build.prop
adb shell sed -i '/^fw.power_user_switcher/d' /mnt/system/system/build.prop
adb shell sed -i '/^fw.show_hidden_users/d' /mnt/system/system/build.prop

adb shell sed -i '/^ro.backup.disable/d' /mnt/system/system/build.prop

adb shell sed -i '/^persist.debug.wfd.enable/d' /mnt/system/system/build.prop
adb shell sed -i '/^debug.sf.enable_hwc_vds/d' /mnt/system/system/build.prop

adb shell sed -i '/^# end of file/d' /mnt/system/system/build.prop


:: And now add them at the end of the file

adb shell sed -i -e '$a# Modified settings' /mnt/system/system/build.prop

:: Let banking apps work
adb shell sed -i -e '$aro.debuggable=0' /mnt/system/system/build.prop
adb shell sed -i -e '$aro.build.type=user' /mnt/system/system/build.prop

:: Disable user switching
adb shell sed -i -e '$afw.show_multiuserui=0' /mnt/system/system/build.prop
adb shell sed -i -e '$afw.power_user_switcher=0' /mnt/system/system/build.prop
adb shell sed -i -e '$afw.show_hidden_users=0' /mnt/system/system/build.prop

:: Disable backup provider
adb shell sed -i -e '$aro.backup.disable=1' /mnt/system/system/build.prop

:: Disable Mira Cast (Wifi Direct) eating your battery
adb shell sed -i -e '$apersist.debug.wfd.enable=0' /mnt/system/system/build.prop
adb shell sed -i -e '$adebug.sf.enable_hwc_vds=0' /mnt/system/system/build.prop

adb shell sed -i -e '$a# end of file' /mnt/system/system/build.prop


:: THE RESULT SHOULD BE AT THE END OF BUILD.PROP:

:: # Modified settings
:: ro.debuggable=0
:: ro.build.type=user
:: fw.show_multiuserui=0
:: fw.power_user_switcher=0
:: fw.show_hidden_users=0
:: ro.backup.disable=1
:: persist.debug.wfd.enable=0
:: # end of file


:: For debugging purposes:
adb pull /mnt/system/system/build.prop
del -f build.system.prop
ren build.prop build.system.prop

echo.
echo done
echo.
pause
echo.

:: ------------------------------------------------------------

echo ------------------------------------
echo Modifying /vendor/build.prop........
echo ------------------------------------
echo.
echo Terminal output will be displayed here:

:: First remove the lines if available

adb shell sed -i '/^# Modified settings/d' /mnt/vendor/build.prop

:: Firmware date
adb shell sed -i '/^ro.vendor.build.security_patch/d' /mnt/vendor/build.prop

:: Display
adb shell sed -i '/^debug.hwui.disable_vsync/d' /mnt/vendor/build.prop
adb shell sed -i '/^debug.hwui.render_dirty_regions/d' /mnt/vendor/build.prop
adb shell sed -i '/^persist.sys.use_dithering/d' /mnt/vendor/build.prop
adb shell sed -i '/^ro.sf.lcd_density/d' /mnt/vendor/build.prop

:: VoLTE (only what is missing)
adb shell sed -i '/^persist.dbg.ims_volte_enable/d' /mnt/vendor/build.prop
adb shell sed -i '/^persist.dbg.volte_avail_ovr/d' /mnt/vendor/build.prop
adb shell sed -i '/^persist.dbg.vt_avail_ovr/d' /mnt/vendor/build.prop
adb shell sed -i '/^persist.dbg.wfc_avail_ovr/d' /mnt/vendor/build.prop
adb shell sed -i '/^persist.vendor.radio.calls.on.ims/d' /mnt/vendor/build.prop
adb shell sed -i '/^persist.vendor.data.iwlan.enable/d' /mnt/vendor/build.prop

adb shell sed -i '/^# end of file/d' /mnt/vendor/build.prop


:: And now add them at the end of the file

adb shell sed -i -e '$a# Modified settings' /mnt/vendor/build.prop

:: Firmware date
set CUR_YYYY=%date:~9,4%
set CUR_MM=%date:~6,2%
set CUR_DD=%date:~3,2%
set SUBDATE=%CUR_YYYY%-%CUR_MM%-%CUR_DD%
adb shell sed -i -e '$aro.vendor.build.security_patch=%SUBDATE%' /mnt/vendor/build.prop

:: Display
adb shell sed -i -e '$adebug.hwui.disable_vsync=true' /mnt/vendor/build.prop
adb shell sed -i -e '$adebug.hwui.render_dirty_regions=false' /mnt/vendor/build.prop
adb shell sed -i -e '$apersist.sys.use_dithering=0' /mnt/vendor/build.prop
adb shell sed -i -e '$aro.sf.lcd_density=460' /mnt/vendor/build.prop

:: VoLTE (only what is missing)
adb shell sed -i -e '$apersist.dbg.ims_volte_enable=1' /mnt/vendor/build.prop
adb shell sed -i -e '$apersist.dbg.volte_avail_ovr=1' /mnt/vendor/build.prop
adb shell sed -i -e '$apersist.dbg.vt_avail_ovr=1' /mnt/vendor/build.prop
adb shell sed -i -e '$apersist.dbg.wfc_avail_ovr=1' /mnt/vendor/build.prop
adb shell sed -i -e '$apersist.vendor.radio.calls.on.ims=1' /mnt/vendor/build.prop

adb shell sed -i -e '$a# end of file' /mnt/vendor/build.prop


:: THE RESULT SHOULD BE AT THE END OF BUILD.PROP:

:: # Modified settings
:: ro.vendor.build.security_patch=<DATE>
:: debug.hwui.disable_vsync=true
:: debug.hwui.render_dirty_regions=false
:: persist.sys.use_dithering=0
:: ro.sf.lcd_density=460
:: persist.dbg.ims_volte_enable=1
:: persist.dbg.volte_avail_ovr=1
:: persist.dbg.vt_avail_ovr=1
:: persist.dbg.wfc_avail_ovr=1
:: persist.vendor.radio.calls.on.ims=1
:: # end of file

:: FOR VOLTE CHECK, DIAL *#*#4636#*#*, PHONE INFORMATION - 3DOTS MENU - IMS SERVICE STATUS
::
:: Complete VoLTE settings:
::
:: # Debug Options
:: persist.dbg.ims_volte_enable=1
:: persist.dbg.volte_avail_ovr=1
:: persist.dbg.vt_avail_ovr=1
:: persist.dbg.wfc_avail_ovr=1
::
:: # Data Options
:: # Commented this line out as it was reported to break WiFi calling on some carriers.
:: # persist.data.iwlan.enable=true
::
:: # Radio Options
:: persist.radio.rat_on=combine     (OR persist.vendor.radio.rat_on=combine)
:: persist.radio.data_ltd_sys_ind=1 (OR persist.vendor.radio.data_ltd_sys_ind=1)
:: persist.radio.data_con_rprt=1    (OR persist.vendor.radio.data_con_rprt=1)
:: persist.radio.calls.on.ims=1     (OR persist.vendor.radio.calls.on.ims=1)


:: For debugging purposes:
adb pull /mnt/vendor/build.prop
del -f build.vendor.prop
ren build.prop build.vendor.prop

echo.
echo done
echo.
pause
echo.

:: ------------------------------------------------------------

echo ------------------------------------
echo Proper unmount partitions...........
echo ------------------------------------
echo.
echo Terminal output will be displayed here:

adb shell umount /mnt/product
adb shell umount /mnt/system
adb shell umount /mnt/system_ext
adb shell umount /mnt/vendor

echo.
echo done
echo.
pause
echo.

:: ------------------------------------------------------------

echo ------------------------------------
echo Rebooting phone...
echo ------------------------------------
echo.
pause
adb reboot

Hope it helps for people with banking issues and the need to change some settings in build.prop or else...

Use the information above at your own risk ;)
 
Last edited: