Okay. If this is not where the MODs want this post, please move it.
[UPDATE] - Jump over to Post #12 for some of my recent ideas and changes for this application.
I have been using mods for the G1 and the myTouch 3G for a little while now. I have used Backup for Root, and I use Nandroid. I created just a little simple script to backup your device to your linux-based machine and restore from there too. The concept behind this is having your backup on your computer, not your sd-card. Please, feel free to contribute. (If this is not your cup of tea, please do not leave a comment). I am limited on time, and wanted to contribute a little to the community. All this script is a compilation of adb commands. Anyone could compile these commands, I just wanted it organized and in one place.
README
After using all of the backup tools for root, I have ran into random FCs and bugs. This script uses Android SDK's adb tool and was designed to be simple. This script goes through and backs up your applications, bookmarks, sms, alarm clocks, settings, launcher settings and dictionary. There are plans for this script to be interactive in the future. As for now, it is a very basic script that will backup your device then restore your device.
Notes. As for now this script requires sudo. On every other linux pc tested, sudo was required (maybe because user did not install adb correctly?). This will change in future versions.
= Details =
REQUIREMENTS
1. Android SDK Toolkit 1.5 or higher
2. Bash v4.0.33
3. Root access to your device
4. Root access to your pc
HOWTO
Backing-Up
1. Plug your device in
2. Open command-line (On PC)
3. Run ./abrtool -b
4. Done.
Restoring
1. Reboot from flash of rom (Enter credentials and let phone setup first)
2. Open command-line (on PC)
3. Run ./abrtool -r
4. Restart device
5. Done
Changelog
Version 0.1.5
- Merged into Android-Linux-Tools (alt)
- Changed zenity commands (shows restore progress)
- Option to restart device after restore
- Can install abrtool via command-line (./abrtool --install)
Version 0.1.4
- Added Icons
- Runs Fix Permissions after restoration of applications
Version 0.1.3
- Fixed Restore (Again) - Sets $BACKUPDIR as $PATH
Version 0.1.2
- Restore applications now uses adb install instead of push
Version 0.1.1
- Fixed Restore arugement (-r restores now)
Version 0.1
- Created initial script
- Creates backups for Apps, Sms, Bookmarks, Alarms, Settings, User Dictionary, and Launcher
- Restores device
Download
Project Page for Android-Linux-Tools (ALT) http://code.google.com/p/android-linux-tools
Project Page for abrtool http://code.google.com/p/abrtool
Download abrtool ConvertVideoToAndroid
Download InstallOnAndroid Nautilus Script
InstallOnAndroid
Disclaimer
I am not responsible for anything. Anything at all. I'm just not. Blame someone else if something goes horribly wrong.
[Reserved]
[Reserved for future post]
Nice script but bart.sh can accomplish a full backup of your Android environment for restoration at a later date. While it does it to the SD card initially, these "barts" can easily be copied to any computer. I can, however, see a use for this as it serves a slightly different purpose. Thanks.
I wasn't sure what response I would get to this post. I have had to flash, partition, format, wipe.. enough times that I just wanted to plugin into my computer, backup, wipe-flash then restore. Thanks!
nice. I don't use linux myself, but i see the point of having the backup else where (not an SD card attached to the phone itself).
will this, in theory be made to work on windows? Cause that will be awesome.
@str4vag It would be really simple to just use a .bat file for Windows. I don't have any plans on making a windows script anytime soon. Sorry. Same commands especially though.
This is exactly what I've been looking for, now I just need to mod it to sync apps/bookmarks/etc automatically whenever I plug in my phone, and to only sync the new items to keep it speedy, great work dev!
@ggolemg I can play around with some "real" features soon. I plan on having it archive your backups and allow you to select which backup (default is most recent) you would like to use. I am sure I can play around with your idea too. Thanks.
subscribing to the thread, idea is very interesting. i've been looking for a foolproof way to backup and restore bookmarks, sms messages, and different alarms, without all the issues of backup for root users. gonna check out the script tonight.
Update coming by the end of the week.
- Will only backup apps not already backed up.
- Possibly apply the Python interface I have developed.
- More goodies.
How about switchrom?
Android-Linux-Tools
Okay, so this week has been crazy for me. (Mind you I am a restaurant manager first and a developer (primary web) second). I think I am going to gear this project in a different direction. First off, I have created GTK2 Dialogs and a settings panel for this application. I would like to gear towards general linux tools on the pc side. So over the next two weeks you can expect,
- Graphical Interface for abrtool (Android-Backup-Restore)
- Configuration for each application.
- Nautilus Scripts for all applications.
- Right-Click to Encode Video (With GTK2 Dialog progress)
- Right-Click to Install APK (With GTK2 Dialog progress)
- Right-Click to Sign APK (With GTK2 Dialog progress)
- Right-Click to Copy Files to SD Card
- abrtool will backup to Ubuntu One Cloud (Simple adb pull ~/Ubuntu\ One/? or maybe play with the API?)
Ideas and Possibilities
- User.conf editor
- Select with applications to backup
- Switchrom features?
Any other thoughts or suggestions are welcome. I want to start simple, keep working on the abrtool and then make my way out to some other useful tools for us linux (Ubuntu) users. Let me know what you think and what would be helpful.
i had to make a bynch of edits so this dosent run as root, id recomend everyone do the same, only run root when you must. Also changed ,.adb to adb so i dont have to run it in my android sdk dir
@ahronzombi Can you post those changes?
I am a firm believer of only running root when needed, Like I mentioned before I don't really have a huge amount of time, and when I tested this on a friends notebook adb required root to atleast kill-server then you could perform shell/push/pull.
AFAIK, adb server only requires root if ou haven't set the proper udev rules for the device.
Exactly. If we want this script to run universally we cannot rely on all users to have added the udev rules. If they don't they have to run sudo. Maybe a quick check for the udev file then sudo if not?
boulderjams said:
Exactly. If we want this script to run universally we cannot rely on all users to have added the udev rules. If they don't they have to run sudo. Maybe a quick check for the udev file then sudo if not?
Click to expand...
Click to collapse
no i think it would be wise to have people understand there udev permissions rather than run root so its universal. that kind of thinking leads to very big security problems. with root in the script most of the simplest linux users could exploit anyone
I fully understand that. Do you mind posting your changes to the script?
this is the secure version of the script that dosent run as root
keep in mind i set my own adb and home directorys so you'll have to change those
Code:
#! /bin/bash
# abrtool version 0.1
# Last Updated Wednesday, November 18, 2009
# Android Backup Data and Restore Data Script
#TODO
# 1- See if config file exists
# 2- If not, create config file (for now, select directory to backup to)
# 3- See if arguments are specified
# 4- If not, return an error via dialog
# 5- If argument -b exists, run backup
# 6- If argument -r exsists, run restore
export PATH=${PATH}:/home/ahron/android/android-sdk-linux/tools:/home/ahron/android/abr
BACKUPDIR=/home/ahron/android/backups
USER=${username-`whoami`}
backupscript() {
export PATH=$PATH:$BACKUPDIR
adb kill-server
adb pull /system/sd/app $BACKUPDIR/apps
adb pull /system/app $BACKUPDIR/apps/device
echo "---------- Backed Applications"
adb pull /data/data/com.android.providers.telephony/databases/mmssms.db $BACKUPDIR/msgs/mmssms.db
echo "---------- Backed Text Messages"
adb pull /data/data/com.android.browser/databases/browser.db $BACKUPDIR/bookmarks/browser.db
echo "---------- Backed Bookmarks"
adb pull /data/data/com.android.alarmclock/databases/alarms.db $BACKUPDIR/other/alarms.db
adb pull /data/data/com.google.android.providers.settings/databases/googlesettings.db $BACKUPDIR/other/googlesettings.db
adb pull /data/data/com.android.launcher/databases/launcher.db $BACKUPDIR/other/launcher.db
adb pull /data/data/com.android.providers.userdictionary/databases/user_dict.db $BACKUPDIR/other/user_dict.db
echo "---------- Backed Other Settings"
chown -R $USER $BACKUPDIR
zenity --info --text "Successfully Backed-up to $BACKUPDIR"
}
restorescript() {
export PATH=$PATH:$BACKUPDIR
adb kill-server
#sudo adb push $BACKUPDIR/apps /system/sd/app
echo "----------- Installing Applications"
cd $BACKUPDIR/apps
for searchfile in ./*.apk
do
echo "------------ Processing $searchfile"
sudo adb install "$searchfile"
done
echo "---------- Restored Applications"
adb shell su
adb shell fix_permissions
echo "---------- Fixed Application Permissions"
adb push $BACKUPDIR/msgs/mmssms.db /data/data/com.android.providers.telephony/databases/mmssms.db
echo "---------- Restored Messages"
adb push $BACKUPDIR/bookmarks/browser.db /data/data/com.android.browser/databases/browser.db
echo "---------- Restored Bookmarks"
echo "---------- (Please, make sure to restart your browser)"
adb push $BACKUPDIR/other/alarms.db /data/data/com.android.alarmclock/databases/alarms.db
adb push $BACKUPDIR/other/googlesettings.db /data/data/com.google.android.providers.settings/databases/googlesettings.db
adb push $BACKUPDIR/other/launcher.db adb pull /data/data/com.android.launcher/databases/launcher.db
adb push $BACKUPDIR/other/user_dict.db /data/data/com.android.providers.userdictionary/databases/user_dict.db
echo "---------- Restored Other Settings"
zenity --info --text "Successfully Restored Android device from $BACKUPDIR"
}
if [ "$#" -eq 0 ]
then
echo "Usage $0"
echo " -b Backup"
echo " -r Restore"
exit $E_OPTERR
fi
set -- `getopt "br:" "[email protected]"`
while [ ! -z "$1" ]
do
case "$1" in
-b) backupscript;;
-r) restorescript;;
esac
shift
done
Hi, i just rooted my hero yesterday.
I have some small capacities on linux, and i wnated to know if there is ( and where it is ) an equivalent to the /etc/init.d and different rc.x.d config. file for the process launched at boot. I wouldl ike to edit or delete some programs launching at startup which i don't need really to launch at startup Is it possible and simple ?
Ciao
Fred
Edit : stupid question... there is no vi on the system so no way to edit the file ..
I am even new than you to android rooting (just rooted my Sprint Hero 2.1 today!).
I loaded Fresh ROM 2.1.2 on my Hero today and there's an app called "ES File Explorer". It allows me to browse the unix-like filesystem, right to the directory you mentioned above.
I can click on the files and open them as Text, Executable, etc. Opening as Text even gives me two different text editors.
Unfortuantly, the file(s) you talk about are for readonly. You have to be logged in as a Superuser to edit them (as I found out today). The easiest way I found is to do it via a command-line prompt.
When you "root" your android phone, that means you are able to login remotely as another user. Such as the "superuser" account from the Android SDK. On Windows, after you have rooted your phone, you can do:
Code:
C:\android\tools\> adb remount
C:\android\tools\> adb shell
#
When you see that "#" prompt, you are now logged into your phone running the default shell (not sure which shell it is). So, now you can copy/open that file:
Code:
# cd \
# type init.rc | more
Of course u can't do squat from here. So, you have two options:
1) Change the permissions to allow you to modify it from the Android device itself (possible security issue if u download a broken app that wants to modify your phone).
Code:
# chmod 755 init.rc
Now you are able to modify the file locally, right on your device. No PC needed any longer. But again, it's a possible seucrity issue.
2) just pull the file from your device to your desktop pc, edit it, and push it back. Exit out of the # shell by typing "exit" and pressing enter. At the C prompt, pull the file:
Code:
C:\android\tools\> adb pull /init.rc C:\init.rc
That pulls the file from your android device and places it at C:\init.rc. You can obmit the C:\ part, which would place the file in your android Tools folder u are running adb from (mine is getting messy though).
Once you edit it to your liking, push it back to your device:
Code:
C:\android\tools\> adb push C:\init.rc /init.rc
And that's it.
most custom roms contain nano, which is also a possible way to edit files.
I updated my post to reflect actual directions on how to modify a system file like that.
Root Packager
Hey everyone! So for some reason, I hate batch files... They are ugly and I think it makes some users turn away from rooting their phones. So I went ahead and made a graphical UI that can be used for any root methods (non-Odin). The idea is that anyone who comes up with a method to root phones will have an easy way to throw together a GUI for rooting the phone instead of using a batch file.
This will work on Windows, Mac, and Linux. I haven't done the build on the Linux version or Mac yet but it is written in Qt so it will compile for all of the machines. So here is the deal:
There is a main structure to the program:
RootPackager
|
| -> root/ -- files used for the root method
| -> root.script
| -> tools/ -- location of adb (android debugger bridge)
| -> device/
| -> phone.txt -- name of the device you are rooting in the text file
| -> credits.txt -- HTML of credits for whoever made the root method
| -> drivers.txt -- links and names of carriers with the url to the driver for the phone
| -> html/
phone.txt
Simply put the name of the phone in this text file
credits.txt
You may put any HTML in this document crediting the people who made the root method.
Please keep the HTML relatively short, I recommend a <ul> list
drivers.txt
This file contains the carrier name and url to download the USB driver of the phone
On each line, you put the carrier name (no spaces) separated by whitespace and then the URL to the download.
Example:
Verizon url_goes_here
TMobile url_goes_here
root/ folder inside of the main folder
You may put all the files required to perform the root method here so they can be accessed by the script.
root/root.script
The 'root.script' file inside the root folder is where all the magic happens. This is essentially your batch script, but in a much simpler syntax. There is an example root.script in the folder provided, but here are the methods I have implemented so far:
# Commands Available For Root Packager:
# sleep - example: sleep 2 (sleeps for 2 seconds) - sleeps for a determined amount of time in seconds
# move - example: move /data/local/file /data/local/file2 - moves files on Android device
# shell - example: shell /data/local/debugfs - executes commands on the adb shell
# delete - example: delete /data/local/tmp.bak - deletes a file on Android device
# waitfordevice - example: waitfordevice - wait for the device to connect
# push - example: push su /data/local/ - pushes a file from the root/ folder to the Android device
# reboot - example: reboot - restarts the device
# adb - example: adb shell /data/local/su - execute any adb command you want
Please look at the example I have provided to make sense of it all.
Notice that if you are pushing a file, there is no need to add the directory, as the directory is the root/ folder. This is why it is important to put all root method files in here.
After all methods are executed, the program will verify that the device has been rooted.
The example I have provided will root the Samsung Galaxy S3 USA Variants on Android 4.0.4.
I hope you find this useful and I hope that this leads to less batch scripts floating around!!!
Here is the download:
mediafire.com/?l559tse4ztzc47d
Here are some screenshots:
imgur.com/a/7Eq48
hi i want to make a superuser command list
anyone how know commands can post it here.
chmod - give especific permissions to an specific file
cat - look at, modify, or combine a file. You can also copy files with this command by "reading" it to another file instead of to the screen.
cd - change from one directory to another
cp - Copy a file from one location to another
dd - copies exact locations to other locations. Can be an entire drive, a folder, etc. dd if= of=. uses an input file and an output file.
df - how much free disk space.
du - show disk usage of files. Add "-h" to get human readable. Especially useful when you add "-d1" to limit the directory depth to 1. If you run "du -h -d1", it will tell you how much space each directory occupies, including their contents summed.
exit - exits the shell you are in.
grep - search within a file for a text string. Also useful for parsing command output. 'ls | grep something' is a quick way to list files that contain the string "something" (although "ls *something*" would do it, too, but grep can do a lot more)
ifconfig- get network interface configuration. Good for getting your own IP address.
kill - kill a process by PID
ls - lists all files in a directory .
mv - Move a file from one location to another.
ping - see if an internet host is alive
pm - android package manager. LOTS of useful things in here, type pm by itself for the help screen
ps - list processes. Useful to see what is running
reboot - reboots your device
reboot recovery - reboots you into recovery
reboot-bootloader -reboots the device in bootloader- fastboot
rm - remove a specified file
rmdir - remove a directory. rm can't do it unless you remove recursively with -R
su - Substitute User. We type this to switch to the root user. You need to type this command first to do a lot of the other commands.
sync - synchronizes any data on disk with data in memory. We type this before rebooting to ensure we've got all data written
tar - creates taped archives. Compresses files like winzip, 7zip, winrar and others tar
top - like task manager, it displays running processes. in Linux the q key quits. On Android I don't know how to make it quit other than closing the app.
uptime - displays how long it has been since you last rebooted the system. Interestingly enough the "Menu Key > System > About Phone > Status > Up time" on my phone does not match "uptime" typed in the terminal emulator.
Download a root explorer app. Go to system/bin (or xbin). You will see many files, but actually every file is a command for the kernel and (theoretically) all of them can be used in the terminal. Not all of them are stand-alone functions and must be used along with other commands. Just type the title of a file in terminal and see what happens. You might find some other functions that are not already in your list .
Sent from my GT-I9001 using xda app-developers app
I use this as a cheatsheet as I normally deal with rooted devices with busybox installed anyway. Most "commands" found in /system/bin are symlinks to busybox. Sometimes a device has a non-standard busybox version with not all applets available. The reason why Titanium backup ships their own version of busybox with the app.
I moved to ProtonMail from GMail a few years ago due to privacy issues. But ProtonMail app on android has always lacked a very important feature. Multiple accounts.
Parallel Apps on OOS and Parallel Space do exist, but I have never been able to add more than a few basic apps in it. But i figured something out that works for me. There might be other ways, but this is what I have done.
Phone tested here: OnePlus 7 (OOS 10.3.3). Should work for most other phones.
Prerequisites:
1. Backup. Always backup your phone before trying anything new.
2. ADB.
3. Aurora app store apk file. [You can finf the apk on the official XDA Thread for the app]
Process:
1. Connect the Phone to the computer and check whether adb is setup properly. If there is a device, it is connected properly and you can continue.
Code:
[email protected]:~$ adb devices
List of devices attached
24b61df3 device
2. Now that its connected, we need to access the adb shell.
Type adb -d shell to access the android shell and execute the rest of the steps.
Code:
[email protected]:~$ adb -d shell
OnePlus7:/ $
3. Create a new user. Put your desired username instead of <username>
Code:
OnePlus7:/ $ pm create-user --profileOf 0 --managed <username>
Success: created user id 10
If successful, the ID of new user (usually 10 or above) will be displayed.
You can check if the user was successfully created by execute:
[cods]
OnePlus7:/ $ pm list users
Users:
UserInfo{0wnerr:13} running
UserInfo{10:<username>:20} running
[/code]
4. Start the new created user
Code:
OnePlus7:/ $ am start-user 10
Success: user started
5. In a few seconds, you can see a work profile in the application drawer.
Reboot the phone.
Basically you have an entire set of new apps in this new profile (with a briefcase sticker on the icon), including a new Play Store, and all other system apps. And there is no need to logout and login between profiles anymore.
6. Now you can install apps on this user using:
Code:
adb install --user <user id> <package name>
7. Sadly due to a bug in Play Store, if you try to download apps in the new profile that already exist in the root profile, it gives you an error.
Fortunately there is a work around. We install the completely safe and open source Aurora store app.
Code:
adb install --user <user id> aurora.apk
You can now use this store to download any app and create a second account.
Alternatively, you can also download the apks from apkmirror and install them using adb.
Pro Tip: To make things easier, go to Settings -> Apps & Notifications -> See All -> Filter using “Work” and then disable all the system apps that you dont need, like OG Play store, since it wont work anyway.
So you just took this already existing Guide and pasted here without providing the source?
https://www.xda-developers.com/add-any-app-oxygenos-parallel-apps-space-oneplus-phones/
Aswin08 said:
So you just took this already existing Guide and pasted here without providing the source?
https://www.xda-developers.com/add-any-app-oxygenos-parallel-apps-space-oneplus-phones/
Click to expand...
Click to collapse
This guide is different. Does not create a seperate section (work profile)
It installs apps in the normal app drawer with a small badge to differentiate. What i explained creates a seperare app drawer alltogether. Plus that article has not worked for me on 3 oneplus devices that I tried. Hence i did not say that i was inspired by that article.
But if it is still required, I will mention it.
metal_head1 said:
This guide is different. Does not create a seperate section (work profile)
It installs apps in the normal app drawer with a small badge to differentiate. What i explained creates a seperare app drawer alltogether. Plus that article has not worked for me on 3 oneplus devices that I tried. Hence i did not say that i was inspired by that article.
Click to expand...
Click to collapse
Okay, fine thn. :good: