ADB COMMAND TO FACTORY RESET DEVICE - General Questions and Answers

ADB COMMAND TO FACTORY RESET DEVICE?? I'm trying to factory reset an Android / Linux based device but I'm not sure the command?? And should I use net-hunter, terminal emulator, or SSH? PLEASE HELP

Either
Code:
adb shell "am broadcast -a android.intent.action.MASTER_CLEAR"
or
Code:
adb shell "recovery --wipe_data"

I prefer this one : am broadcast -p android -a android.intent.action.FACTORY_RESET
(needs root)
edit:
if you also need to wipe all data and system properties here is it:
am broadcast -p android -a android.intent.action.FACTORY_RESET -e "android.intent.extra.REASON" "MasterClearConfirm" --ez "android.intent.extra.WIPE_EXTERNAL_STORAGE" true --ez "com.android.internal.intent.extra.WIPE_ESIMS" true --receiver-foreground

Related

Problem running commands in the terminal for android...

Hello, i am trying to boot debian on my nexus one the guide i am using is telling me to run these commands
$ adb remount
$ adb install vnc.apk
$ adb install swapper.apk
$ adb shell
# cd /sdcard/debian
# su
# sh ./debian.sh
# exit (repeat until out of adb)
I am getting to the point where i type the command # cd /sdcard/debian but it tells me cd: can't cd to /sdcard/debian. Anyone know what i am doing wrong? Thanks...
btw i am using ubuntu

[Q]How to access android FS form fastoot/flashmode

I have copyied a damaged file in /system/app folder and now my phone is in the Bootloop. I wanna acces that file and replace it with the original. Can I do that?
I managed to solve it by deleting the 2 damaged files with this piece of code
Code:
echo " "
echo "Waiting for device..."
adb wait-for-device
echo " "
adb -d shell su -c "mount -o rw,remount /system"
adb -d shell su -c "ls /system"
adb -d shell su -c "rm /system/app/AudioEffectService.apk"
adb -d shell su -c "rm /system/app/SoundEnhancement.apk"
(of course the boot-loop forced me to find the right moment in the boot sequence to run the script)

ADB Inception

I decided to try some inter-device adb action today. I'm sure some people have tried this, but I thought it was interesting. So I began by connecting from my laptop to my Nexus 4. I set up the Nexus 4 to do adb wireless with:
Code:
setprop service.adb.tcp.port 5555
adbd &
On my laptop I connected to the Nexus 4 with:
Code:
adb connect 192.168.0.7 (Nexus 4's host)transfer files over telnet
adb shell
su
Then I set up my G4 to do adb wireless the same way. In the adb shell into my Nexus 4, I connected to my G4 with:
Code:
adb connect 192.168.0.11 (G4's host)
adb shell
su
I tested some file transfers betwen phones with "adb push" and "adb pull" which worked really well. I'll definitely be using adb in the future to transfer files from one phone to the other. ftp works well, but this is even easier.
I decided to take my adb connection even further. My adb shell is now from laptop -> Nexus 4 -> G4 now. I then connected back to the Nexus 4 with:
Code:
adb connect 192.168.0.7
adb shell
su
When adb connects to a device it connects to the abdb daemon, and multiple connections can be made. Now that I'm back in the Nexus 4, I could reconnect to the G4, but that would be pointless since I already connected from the Nexus 4 to the G4. I wanted to try some other things. In the Nexus 4, I dropped down into a chrooted ubuntu image. I retrieved adb like you do on a computer with ubuntu:
Code:
apt-get install android-tools-adb
In the ubuntu chroot on the Nexus 4, I connected back to the G4. I'm now running laptop -> Nexus 4 -> G4 -> (Nexus 4 -> ubuntu chroot) -> G4. At this point the connection was showing some lag. In the G4, I dropped down to a chrooted ubuntu image I have on that phone. I connected back to the Nexus 4. Dropped down into a chrooted Debian image I also have on that phone. At that point, I was able to connect back to the G4, but the device showed up as "offline", so I exited the chroot. In the Android environment, I found out I was still able to connect back and forth between phones, launching new adb processes each time. I ended up with an adb shell connection like this: laptop -> Nexus 4 -> G4 -> (Nexus 4 -> ubuntu chroot) -> (G4 -> ubuntu chroot) -> (Nexus 4 -> G4 ->)x20. You can see the processes for the connections with:
Code:
pgrep -fl adb
# You get something like:
>339 adb -s 192.168.0.7:5555 shell
>2869 adb -s 192.168.0.7:5555 shell
>4049 adb -s 192.168.0.7:5555 shell
>4933 adb -s 192.168.0.7:5555 shell
>5085 adb -s 192.168.0.7:5555 shell
>5772 adb -s 192.168.0.7:5555 shell
>5879 adb -s 192.168.0.7:5555 shell
>6027 adb -s 192.168.0.7:5555 shell
>6135 adb -s 192.168.0.7:5555 shell
>6236 adb -s 192.168.0.7:5555 shell
>6334 adb -s 192.168.0.7:5555 shell
>6447 adb -s 192.168.0.7:5555 shell
>6548 adb -s 192.168.0.7:5555 shell
>31220 /sbin/adbd --root_seclabel=u:r:su:s0
>31669 adb -P 5037 fork-server server
>31684 adb -P 5038 fork-server server
In the Android environment (not the chroot), I connected from phone to phone about 20 times until I got bored and the connection got too laggy. Unfortunately, the adbd daemon you can download in ubuntu gives a segmentation fault when you run it in Linux, so no connection between ubuntu's. Telnet and ssh work though. I was able to ssh back into my laptop with my ridiculous, laggy adb cascade and then adb back into the phones once again. Depending on which device you're currently in, you can kill the whole chain with:
Code:
pkill adbd
This was all kind of ridiculous, but the adb between phones is useful, so I guess I got something out of it.
This is pretty cool. Thanks for that.
Off topic, but if you do transfer files between phones a lot or if you enjoy streaming media from one phone to another, one solution I use is the Sambadroid app. Just hotspot one phone, connect to the wifi on the other, and use a file explorer app such as ES to map a network share.

Cloning Pre-configured Android 8.1 Device / ROM

Hey guys,
Not sure if this is the correct place to post, but I am at my wits end and think I need a bit of help. I have been cloning devices on Android 7.1 without too much trouble, but something has changed in Android 8.1 which breaks things. Here is my setup:
Device: Xiaomi Redmi Note 4X 16GB, unlocked bootloader
OS: LineageOS 15.1 (Android 8.1)
My setup process is as follows:
Let stock ROM update (for latest firmware), unlock BL, flash TWRP, clean wipe, flash LineageOS + Gapps + Magisk
Skip through setup wizard, apply customisations (apps via APKs, launcher, settings, etc)
Clear Data for following:
com.google.android.gms.setup
Google App
Google Account Manager
Google Backup Transport
Google One Time Init
Google Partner Setup
Google Play Services
Google Play Services for Instant Apps
Google Play Store
Google Services framework
Reboot to TWRP
Connect to PC, run following ADB command: adb pull /data/system/users/0/settings_secure.xml
Open settings_secure.xml and delete "android_id" line
Push settings_secure.xml back to device: adb push settings_secure.xml /data/system/users/0/
Capture system image, flash onto other devices (either via TWRP backup or pushing system images via ADB)
Boot device, log into client Google account, done
Now this process used to work great on LineageOS 14.1 (Android 7.1), but now I get the following issues:
When adding a Google Account, it does not appear in Android device manager, but it appears in the list of devices in the Google Play Store? If I remove the account and then add it again it appears, but the issues below still occur.
Google's messaging / push system is broken. If I send a Hangouts message to my Google account, it won't appear until I open the app.
Any pre-installed apps won't appear in the "installed" list of apps in the play store, and therefore not update automatically until the user manually searches for the app in the Play Store and hits "update" (ugh).
I need to be deploying around 100 units over the next couple of months or so I need something that is scalable. I might be going around this the wrong way completely. I am not a ROM developer or programmer, just found something that has worked well in the past, so if I need to develop a ROM from scratch based on LineageOS I'll probably need to hire someone to do this for me as this is a bit beyond my current capabilities and time constraints. Let me know your thoughts! Thanks.
Android ID is same for many devices if you clone. That is really bad and can cause issues.
Rayman96 said:
Android ID is same for many devices if you clone. That is really bad and can cause issues.
Click to expand...
Click to collapse
I am deleting the Android ID from settings_secure.xml though. Unless it is somewhere else as well?
I'm still struggling with this problem. Is there anything else I can try? I googled this problem and the first result is this thread :/
stephendt0 said:
I'm still struggling with this problem. Is there anything else I can try? I googled this problem and the first result is this thread :/
Click to expand...
Click to collapse
Code:
adb shell settings delete secure android_id
adb shell settings delete secure advertising_id
adb shell settings delete secure bluetooth_address
adb shell settings put secure bluetooth_name 'YOURNAME'
adb shell settings put global device_name 'YOURNAME'
adb shell settings put global wifi_p2p_device_name 'YOURNAME'
The two IDs are then randomly regenerated. YOURNAME is any name of your choice.
rainman74 said:
Code:
adb shell settings delete secure android_id
adb shell settings delete secure advertising_id
adb shell settings delete secure bluetooth_address
adb shell settings put secure bluetooth_name 'YOURNAME'
adb shell settings put global device_name 'YOURNAME'
adb shell settings put global wifi_p2p_device_name 'YOURNAME'
The two IDs are then randomly regenerated. YOURNAME is any name of your choice.
Click to expand...
Click to collapse
Thanks for that. I believe I actually found their respective strings in settings_secure.xml:
<setting id="59" name="config_update_certificate"
<setting id="43" name="bluetooth_address"
And of course the Android ID. Once I deleted these, they auto-generated on the next boot, so I do this using ADB in TWRP.
I tried this and so far I'm not having any problems! Will report back if I experience any issues.
Another update - turn out that this is NOT enough. You will also want to clear data for the following apps (ideally just before shutting down the system and clearing android, bluetooth and config_update_certificate) to ensure that push notifications continue to work:
Com.google.android.gms.setup
Google App (not 100% sure if this is required, but I do it anyway)
Google Play Services
Google Play Store
Google Services framework
Reboot, clear your IDs, and then take your image. It should be OK after that, I think. I generally like to setup Hangouts on the device and then reboot, and let it sit for 5 minutes so its fully dozed before I send a test message.
Edit: STILL not working even after all this. Anyone else able to offer an explanation as to why push notifications is such an issue? This is becoming really difficult
stephendt0 said:
Another update - turn out that this is NOT enough. You will also want to clear data for the following apps (ideally just before shutting down the system and clearing android, bluetooth and config_update_certificate) to ensure that push notifications continue to work:
Com.google.android.gms.setup
Google App (not 100% sure if this is required, but I do it anyway)
Google Play Services
Google Play Store
Google Services framework
Reboot, clear your IDs, and then take your image. It should be OK after that, I think. I generally like to setup Hangouts on the device and then reboot, and let it sit for 5 minutes so its fully dozed before I send a test message.
Edit: STILL not working even after all this. Anyone else able to offer an explanation as to why push notifications is such an issue? This is becoming really difficult
Click to expand...
Click to collapse
ok, if you want to reset everything in a clone, proceed as follows:
Code:
adb shell su -c mount -o remount,rw /system
adb shell su -c rm /data/system/users/0/accounts.db
adb shell su -c rm /data/system/users/0/accounts.db-journal
adb shell su -c rm /data/system/users/0/photo.png
adb shell su -c rm /data/system/sync/accounts.xml
adb shell su -c rm /data/system/sync/pending.xml
adb shell su -c rm /data/system/sync/stats.bin
adb shell su -c rm /data/system/sync/status.bin
adb shell su -c pm clear com.android.packageinstaller
adb shell su -c pm clear com.android.providers.downloads
adb shell su -c pm clear com.android.vending
adb shell su -c pm clear com.google.android.backuptransport
adb shell su -c pm clear com.google.android.gms
adb shell su -c pm clear com.google.android.gsf
adb shell su -c mount -o remount,ro /system
Please also follow my instructions above for resetting the IDs before rebooting.
Google then recognizes a new device! Have fun :fingers-crossed:
rainman74 said:
ok, if you want to reset everything in a clone, proceed as follows:
Code:
adb shell su -c mount -o remount,rw /system
adb shell su -c rm /data/system/users/0/accounts.db
adb shell su -c rm /data/system/users/0/accounts.db-journal
adb shell su -c rm /data/system/users/0/photo.png
adb shell su -c rm /data/system/sync/accounts.xml
adb shell su -c rm /data/system/sync/pending.xml
adb shell su -c rm /data/system/sync/stats.bin
adb shell su -c rm /data/system/sync/status.bin
adb shell su -c pm clear com.android.packageinstaller
adb shell su -c pm clear com.android.providers.downloads
adb shell su -c pm clear com.android.vending
adb shell su -c pm clear com.google.android.backuptransport
adb shell su -c pm clear com.google.android.gms
adb shell su -c pm clear com.google.android.gsf
adb shell su -c mount -o remount,ro /system
Please also follow my instructions above for resetting the IDs before rebooting.
Google then recognizes a new device! Have fun :fingers-crossed:
Click to expand...
Click to collapse
OMG, I think that worked, thank you! I spent 5 hrs and stayed up to 3am trying to work this out with no luck, and this did the trick. To make things easier however, I morphed these commands into a dirty "one-liner" that saves entering each command.
Code:
adb shell settings delete secure android_id && adb shell settings delete secure advertising_id && adb shell settings delete secure bluetooth_address && adb shell settings put secure bluetooth_name 'Redmi Note 4' && adb shell settings put global device_name 'Redmi Note 4' && adb shell settings put global wifi_p2p_device_name 'Redmi Note 4' && adb shell su -c mount -o remount,rw /system && adb shell su -c rm /data/system/users/0/accounts.db && adb shell su -c rm /data/system/users/0/accounts.db-journal && adb shell su -c rm /data/system/users/0/photo.png && adb shell su -c rm /data/system/sync/accounts.xml && adb shell su -c rm /data/system/sync/pending.xml && adb shell su -c rm /data/system/sync/stats.bin && adb shell su -c rm /data/system/sync/status.bin && adb shell su -c pm clear com.android.packageinstaller && adb shell su -c pm clear com.android.providers.downloads && adb shell su -c pm clear com.android.vending && adb shell su -c pm clear com.google.android.backuptransport && adb shell su -c pm clear com.google.android.gms && adb shell su -c pm clear com.google.android.gsf && adb shell su -c mount -o remount,ro /system
I'm sure there is a more efficient way of stacking commands, but this worked. Replace "Redmi Note 4" with your actual device and reboot. I cleared data for any messaging apps and removed my Google account before I began, however.
stephendt0 said:
OMG, I think that worked, thank you! I spent 5 hrs and stayed up to 3am trying to work this out with no luck, and this did the trick. To make things easier however, I morphed these commands into a dirty "one-liner" that saves entering each command.
I'm sure there is a more efficient way of stacking commands, but this worked. Replace "Redmi Note 4" with your actual device and reboot. I cleared data for any messaging apps and removed my Google account before I began, however.
Click to expand...
Click to collapse
Perfect! You don't need to remove your Google account as the commands do this anyway
rainman74 said:
Perfect! You don't need to remove your Google account as the commands do this anyway
Click to expand...
Click to collapse
Quick update.
After a bit more testing, turns out that there were still a few things that needed clearing, particularly on different versions of Android (7.1). Also, I've noticed that a GSF ID can be generated before you get a chance to capture an image if you leave Wi-Fi enabled, so I've included that in the script. I've ended up with a .BAT file with the following:
Code:
echo on
adb shell settings delete secure android_id
adb shell settings delete secure advertising_id
adb shell settings delete secure bluetooth_address
adb shell su -c mount -o remount,rw /system
adb shell su -c svc wifi disable
adb shell su -c rm /data/system/users/0/accounts.db
adb shell su -c rm /data/system/users/0/accounts.db-journal
adb shell su -c rm /data/system/users/0/photo.png
adb shell su -c rm /data/system/users/0/settings_ssaid.xml
adb shell su -c rm /data/system/sync/accounts.xml
adb shell su -c rm /data/system/sync/pending.xml
adb shell su -c rm /data/system/sync/stats.bin
adb shell su -c rm /data/system/sync/status.bin
adb shell su -c pm clear com.google.android.ext.services
adb shell su -c pm clear com.google.android.ext.shared
adb shell su -c pm clear com.google.android.gsf.login
adb shell su -c pm clear com.google.android.onetimeinitializer
adb shell su -c pm clear com.android.packageinstaller
adb shell su -c pm clear com.android.providers.downloads
adb shell su -c pm clear com.android.vending
adb shell su -c pm clear com.google.android.backuptransport
adb shell su -c pm clear com.google.android.gms
adb shell su -c pm clear com.google.android.instantapps.supervisor
adb shell su -c pm clear com.google.android.gsf
adb shell su -c mount -o remount,ro /system
I have found that this works consistently across both LineageOS 14.1 and LineageOS 15.1 devices.
stephendt0 said:
OMG, I think that worked, thank you! I spent 5 hrs and stayed up to 3am trying to work this out with no luck, and this did the trick. To make things easier however, I morphed these commands into a dirty "one-liner" that saves entering each command.
Code:
adb shell settings delete secure android_id && adb shell settings delete secure advertising_id && adb shell settings delete secure bluetooth_address && adb shell settings put secure bluetooth_name 'Redmi Note 4' && adb shell settings put global device_name 'Redmi Note 4' && adb shell settings put global wifi_p2p_device_name 'Redmi Note 4' && adb shell su -c mount -o remount,rw /system && adb shell su -c rm /data/system/users/0/accounts.db && adb shell su -c rm /data/system/users/0/accounts.db-journal && adb shell su -c rm /data/system/users/0/photo.png && adb shell su -c rm /data/system/sync/accounts.xml && adb shell su -c rm /data/system/sync/pending.xml && adb shell su -c rm /data/system/sync/stats.bin && adb shell su -c rm /data/system/sync/status.bin && adb shell su -c pm clear com.android.packageinstaller && adb shell su -c pm clear com.android.providers.downloads && adb shell su -c pm clear com.android.vending && adb shell su -c pm clear com.google.android.backuptransport && adb shell su -c pm clear com.google.android.gms && adb shell su -c pm clear com.google.android.gsf && adb shell su -c mount -o remount,ro /system
I'm sure there is a more efficient way of stacking commands, but this worked. Replace "Redmi Note 4" with your actual device and reboot. I cleared data for any messaging apps and removed my Google account before I began, however.
Click to expand...
Click to collapse
YES, this did it. I cloned a kindle fire hdx using TWRP backup&restore and had to perform the action mentioned above in order to use both devices independetly.
ATTENTION!
Remember to change the values listed in stephendt0's example that were not part of the original code from rainman74:
- device_name: Equals the device type. E.g. adb shell settings put global device_name 'KFHDX'
- bluetooth_name: Hostname of the device seen in bluetooth.
- wifi_p2p_device_name: Hostname used for a p2p wifi network aka "ad hoc network". Not supported on all devices.

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

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!
Okay, did some further research and in fact, found a solution for my "tweaking".
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... ;-)
Scripts and approach can be found in the next posts.
After some boot issues I finally found out what was the issue of my problems with some tweaking around.
As we have a device with A/B, after flashing the update, the active partition is automatically switched after an update. This happens when flashing, so you have to reboot to recovery again directly after flashing the updated LOS and do the tweaking then to actually tweak the right partition...
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
For the latest tweak script (a bat file) I am using now, see the next post.
Hope it helps for people with banking or VoLTE issues and the need to change some settings in build.prop or else... Use the information at your own risk
Latest tweaks.bat file (last changes 25/04/2023):
Code:
:: Moto G100 Tweak Script
:: Last modified 25-04-2023
:: Moto-J
:: ------------------------------------------------------------
:: Changelog:
::
:: 22-04-23 Added:
:: adb shell rm -rf /mnt/product/app/ApertureLensLauncher
:: adb shell rm -rf /mnt/system_ext/app/MotoActions
:: adb shell rm -rf /mnt/system_ext/app/WAPPushManager
:: adb shell rm -rf /mnt/system_ext/priv-app/LineageSetupWizard
:: ------------------------------------------------------------
@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 > nul 2>&1
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/ApertureLensLauncher
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/MotoActions
adb shell rm -rf /mnt/system_ext/app/SoterService
adb shell rm -rf /mnt/system_ext/app/WAPPushManager
:: /system_ext/priv-app
adb shell rm -rf /mnt/system_ext/priv-app/LineageSetupWizard
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
:: For debugging purposes:
adb shell ls /mnt/product/app > _packages-product-app.txt
adb shell ls /mnt/product/priv-app > _packages-product-priv-app.txt
adb shell ls /mnt/system/system/app > _packages-system-system-app.txt
adb shell ls /mnt/system/system/priv-app > _packages-system-system-priv-app.txt
adb shell ls /mnt/system_ext/app > _packages-system_ext-app.txt
adb shell ls /mnt/system_ext/priv-app > _packages-system_ext-priv-app.txt
adb shell ls /mnt/vendor/app > _packages-vendor-app.txt
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 '/^ro.config.ksm.support/d' /mnt/system/system/build.prop
adb shell sed -i '/^persist.debug.wfd.enable/d' /mnt/system/system/build.prop
adb shell sed -i '/^persist.debug.wfd.appmonitoring/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 '/^persist.adb.notify/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 Kernel Samepage Merging (KSM)
adb shell sed -i -e '$aro.config.ksm.support=false' /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 '$apersist.debug.wfd.appmonitoring=0' /mnt/system/system/build.prop
adb shell sed -i -e '$adebug.sf.enable_hwc_vds=0' /mnt/system/system/build.prop
:: Disable notification while adb is active
adb shell sed -i -e '$apersist.adb.notify=0' /mnt/system/system/build.prop
adb shell sed -i -e '$a# end of file' /mnt/system/system/build.prop
:: For debugging purposes:
adb pull /mnt/system/system/build.prop
del /F _build.system.prop > nul 2>&1
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
:: 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 > nul 2>&1
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
For who wants to use some additional adb tweaks; it is possible to do this by enabling adb in your developer settings.
Here is the bat-file I am using (last changes 17/04/2023):
Code:
:: Moto G100 Tweak Script
:: Last modified 17-04-2023
:: Moto-J
:: ------------------------------------------------------------
@echo off
Setlocal EnableDelayedExpansion
color 0A
cls
echo MOTO G100 ADB TWEAK SCRIPT
echo.
echo IMPORTANT:
echo - Enable ADB in developer settings
echo - Connect phone and accept adb connection
echo.
pause
echo.
echo ------------------------------------
echo Connecting device...................
echo ------------------------------------
echo.
echo Terminal output will be displayed here:
adb devices
:: ------------------------------------------------------------
echo ------------------------------------
echo Running tweaks......................
echo ------------------------------------
echo.
echo Terminal output will be displayed here:
echo Enable privacy logging 7-day dashboard...
:: Enable privacy logging 7-day dashboard
adb shell device_config put privacy privacy_dashboard_7_day_toggle true
pause
echo Enable new combined safety center........
:: Enable new combined safety center
adb shell device_config put privacy safety_center_is_enabled true
pause
echo Enable DNS-over-HTTP3 support............
:: Enable DNS-over-HTTP3 support
adb shell device_config put netd_native doh 1
pause
echo Enable cached apps freezer...............
:: Enable cached apps freezer
adb shell device_config put activity_manager_native_boot use_freezer true
pause
echo Defer boot completed broadcasts..........
:: Defer boot completed broadcasts for background restricted apps
adb shell device_config put activity_manager defer_boot_completed_broadcast 2
pause
echo Enable separate notification slider......
adb shell device_config put systemui volume_separate_notification true
pause
echo.
echo Done!
echo.
:: ------------------------------------------------------------
echo ------------------------------------
echo Now reboot and disable adb again....
echo ------------------------------------
echo.
pause
adb reboot
You can enable adb and adb-root, run the script, reboot and afterwards disable adb again.
The settings will stay even after updating, so only running the script once is enough.
Also with a custom rom you want to update your firmware so now and then.
Luckily we can find the firmware for our phone here:
lolinet mirrors - firmware, software, iso etc.
lolinet mirrors - powered by h5ai
mirrors.lolinet.com
And here is the bat-file I am using with phone connected to PC in bootloader (last changes 15/04/2023):
Code:
:: Moto G100 Firmware Update Script
:: Last modified 15-04-2023
:: Moto-J
:: ------------------------------------------------------------
@echo off
Setlocal EnableDelayedExpansion
color 0A
cls
echo MOTO G100 FIRMWARE UPDATE SCRIPT
echo.
echo IMPORTANT:
echo - Connect phone to USB of PC
echo - Boot into bootloader
echo - Execute this BAT-file in directory with fastboot and latest firmware
echo.
pause
echo.
echo ------------------------------------
echo Connecting device...................
echo ------------------------------------
echo.
echo Terminal output will be displayed here:
fastboot devices
:: ------------------------------------------------------------
echo ------------------------------------
echo Updating firmware files.............
echo ------------------------------------
echo.
echo Terminal output will be displayed here:
fastboot flash modem_a NON-HLOS.bin
fastboot flash modem_b NON-HLOS.bin
fastboot erase mdmddr
fastboot flash fsg_a fsg.mbn
fastboot flash fsg_b fsg.mbn
fastboot erase mdm1m9kefs1
fastboot erase mdm1m9kefs2
fastboot flash bluetooth_a BTFM.bin
fastboot flash bluetooth_b BTFM.bin
fastboot flash dsp_a dspso.bin
fastboot flash dsp_b dspso.bin
fastboot flash logo_a logo.bin
fastboot flash logo_b logo.bin
fastboot erase carrier
fastboot erase ddr
echo.
echo done
echo.
pause
echo.
:: ------------------------------------------------------------
echo ------------------------------------
echo Rebooting phone...
echo ------------------------------------
echo.
pause
fastboot reboot
I am only flashing the neccessary stuff as radio and bluetooth and only that is erased what is needed for the update. No data is lost after update, no other tweaking needed.
On first reboot switch off your WiFi and wait a few seconds; carrier info will be updated from your provider and everything is working again. After that you can switch on your WiFi again ;-)
Additional some things which could improve your battery life (and data usage), although this is already great because of the large battery of the Moto G100....
Restrict battery usage in background for apps which do not need it:
go to apps, show all apps, per app, go to battery usage and switch to restricted
For the apps with restricted battery usage, I also switch of background usage of mobile data and VPN.
go to apps, show all apps, per app, go to mobile data and wifi and switch off background usage and VPN
Switch off mobile data for all apps which do not need an internet connections
same approach, though switch off complete network access. You can do this for several apps which you are using without the need of an internet connection like most barcode and QR scanners, file browsers, card storage apps, galery's etc...
In network settings - SIM cards - preferred network types, only select the network types you really need and which are optimised for your usage.
for me this is NR/LTE/GSM/WCDMA as I switch off mobile data at night with profile settings and want to be available by phone (GSM/WCDMA), though for most people only NR/LTE will probably even fit when you are using the VoLTE changes from the first posts and VoLTE is working ;-)
Set peak frequency for screen refresh to 60 Herz, not 90 Herz. 90 Herz is more fluent when scrolling, though for normal reading, internet usage etc... I see no need for 90 Herz and it will save your battery
Set the time-out for your screen as short as possible. I am using 1 minute and it is okay for me.
Enable double click on status or lock screen to enable sleep and really use it.
Use dark theme and black background, although we do not have a led screen, it is still saving battery
Disable location and bluetooth when you are not using it, enable wifi (only) when available.
Disable tick to activate, screensaver and fingerprint sensor swipe
Don't use full brightness, though try to set it that low as possible
Don't charge your phone to 100% every time, though try to keep the battery level between 30-80%.
This is also why I have set battery saving planning to a percentage of 30%.
When you don't need your email updated real time, disable push and only use getting POP3 email for example every hour.
Although I am using a script to remove system apps after an update, you can also disable some system apps you not need. Either way; try to disable as much as possible which is not neccessary for a good working phone.
That's it for now. When I have some additional ideas I will let you know!
Outside of banking apps & enabling volte. What do your other removal of packages and tweaks do? Can you give a general breakdown?
Timmons said:
Outside of banking apps & enabling volte. What do your other removal of packages and tweaks do? Can you give a general breakdown?
Click to expand...
Click to collapse
Sorry but you really have to check yourself.
There are several websites where the apps of Android are explained
The same counts for the build.prop settings.
I think it would be good to check yourself so you know what you are doing.
And even better... may be you will find other tweaks you can share with us!
Moto-J said:
Sorry but you really have to check yourself.
There are several websites where the apps of Android are explained
The same counts for the build.prop settings.
I think it would be good to check yourself so you know what you are doing.
And even better... may be you will find other tweaks you can share with us!
Click to expand...
Click to collapse
Fair enough. You'd mentioned to chmod after updating. Do I have to do that if I just run your bat file to update it? Sorry for the rookie questions as I'm no expert at linux scripts.
Timmons said:
Fair enough. You'd mentioned to chmod after updating. Do I have to do that if I just run your bat file to update it? Sorry for the rookie questions as I'm no expert at linux scripts.
Click to expand...
Click to collapse
No, not neccessary when you are using the script and edit the file by using adb this way.
No rights are modified that way.
Moto-J said:
No, not neccessary when you are using the script and edit the file by using adb this way.
No rights are modified that way.
Click to expand...
Click to collapse
I've updated the script to only update the build file without removing anything but it's not working. getting this below for system & vendor
Modifying /system/build.prop........
------------------------------------
Terminal output will be displayed here:
sed: /mnt/system/system/build.prop: No such file or directory
------------------------------------
Modifying /vendor/build.prop........
------------------------------------
Terminal output will be displayed here:
sed: /mnt/vendor/build.prop: No such file or directory
Timmons said:
I've updated the script to only update the build file without removing anything but it's not working. getting this below for system & vendor
Modifying /system/build.prop........
------------------------------------
Terminal output will be displayed here:
sed: /mnt/system/system/build.prop: No such file or directory
------------------------------------
Modifying /vendor/build.prop........
------------------------------------
Terminal output will be displayed here:
sed: /mnt/vendor/build.prop: No such file or directory
Click to expand...
Click to collapse
Hi @Timmons;
Could it be that you removed the first part of the bat file where the drives are mounted?
Could you therefor share the complete bat file you are using now, so I can actually check what is or could be wrong?
Moto-J said:
Hi @Timmons;
Could it be that you removed the first part of the bat file where the drives are mounted?
Could you therefor share the complete bat file you are using now, so I can actually check what is or could be wrong?
Click to expand...
Click to collapse
And what happens when you copy the lines to the command line one by one instead of using the bat file?
Could you for example try the following lines to check:
Code:
adb devices
adb shell mkdir /mnt/vendor
adb shell mount /dev/block/dm-9 /mnt/vendor
adb shell ls /mnt/vendor
You should see a directory listing (ls) of /mnt/vendor or an error message somewhere
Moto-J said:
And what happens when you copy the lines to the command line one by one instead of using the bat file?
Could you for example try the following lines to check:
Code:
adb devices
adb shell mkdir /mnt/vendor
adb shell mount /dev/block/dm-9 /mnt/vendor
adb shell ls /mnt/vendor
You should see a directory listing (ls) of /mnt/vendor or an error message somewhere
Click to expand...
Click to collapse
C:\Users\Home\Downloads\Motorola>adb shell mkdir /mnt/vendor
mkdir: '/mnt/vendor': File exists
C:\Users\Home\Downloads\Motorola>adb shell ls /mnt/vendor
C:\Users\Home\Downloads\Motorola>adb shell mount /dev/block/dm-9 /mnt/vendor
mount: '/dev/block/dm-9'->'/mnt/vendor': No such file or directory
C:\Users\Home\Downloads\Motorola>adb devices
List of devices attached
ZY22CCJ22P recovery
C:\Users\Home\Downloads\Motorola>adb shell mount /dev/block/dm-9 /mnt/vendor
mount: '/dev/block/dm-9'->'/mnt/vendor': No such file or directory
Not having much luck entering them manually.
Timmons said:
C:\Users\Home\Downloads\Motorola>adb shell mkdir /mnt/vendor
mkdir: '/mnt/vendor': File exists
C:\Users\Home\Downloads\Motorola>adb shell ls /mnt/vendor
C:\Users\Home\Downloads\Motorola>adb shell mount /dev/block/dm-9 /mnt/vendor
mount: '/dev/block/dm-9'->'/mnt/vendor': No such file or directory
C:\Users\Home\Downloads\Motorola>adb devices
List of devices attached
ZY22CCJ22P recovery
C:\Users\Home\Downloads\Motorola>adb shell mount /dev/block/dm-9 /mnt/vendor
mount: '/dev/block/dm-9'->'/mnt/vendor': No such file or directory
Not having much luck entering them manually.
Click to expand...
Click to collapse
Hmmm... it seems that your partitions are different as dm-9 is not known... strange ;-)
Could you try:
adb devices
adb shell ls /dev/block/dm*
Moto-J said:
Hmmm... it seems that your partitions are different as dm-9 is not known... strange ;-)
Could you try:
adb devices
adb shell ls /dev/block/dm*
Click to expand...
Click to collapse
C:\Users\Home\Downloads\Motorola>adb devices
List of devices attached
ZY22CCJ22P recovery
C:\Users\Home\Downloads\Motorola>adb shell ls /dev/block/dm*
/dev/block/dm-0 /dev/block/dm-3 /dev/block/dm-6
/dev/block/dm-1 /dev/block/dm-4 /dev/block/dm-7
/dev/block/dm-2 /dev/block/dm-5 /dev/block/dm-8
Timmons said:
C:\Users\Home\Downloads\Motorola>adb devices
List of devices attached
ZY22CCJ22P recovery
C:\Users\Home\Downloads\Motorola>adb shell ls /dev/block/dm*
/dev/block/dm-0 /dev/block/dm-3 /dev/block/dm-6
/dev/block/dm-1 /dev/block/dm-4 /dev/block/dm-7
/dev/block/dm-2 /dev/block/dm-5 /dev/block/dm-8
Click to expand...
Click to collapse
Ok, it seems you do not have dm-9, so indeed partitions are different.
What I have done to find out what is what is the following:
adb shell mkdir /mnt/tmpdir
adb shell mount /dev/block/dm-0 /mnt/tmpdir
adb shell ls mnt/tmpdir
Then you see what the content is of dm-0 so you know which dir it is
After that you can do
adb shell umount /mnt/tmpdir
adb shell mount /dev/block/dm-1
adb shell ls mnt/tmpdir
etc....
It seems you have to find the right setup for mounting the drives, after that you can slightly modify the script and use it for your phone.

Categories

Resources