Crashing Accounts & Sync after htc sync app removal -- a better fix - EVO 4G Android Development

After flashing damage control 2.3.2 and removing HTC sync apps, the "accounts and sync" control panel was giving me FCs... the sledgehammer advice i found in the DC 2.3.2 announcement was
-If your accounts & sync FC after upgrading from another rom you can try to do the following but be warned you will need to resync everything
Code:
Code:
adb remount
adb shell rm /data/system/accounts.db
adb reboot
Yeah, that works, but there's a whole lot of logging-in to do all over again, which is such a bother without a physical keyboard, so here's a modest improvement...
*new & improved* a nice little cryptic incantation to fix the problem without re-syncing...
SO where does the nudge get sent for this to find its way into dconfig??
Code:
adb shell
cd /data/system
echo 'delete from accounts where type LIKE "com.htc%";' |sqlite3 accounts.db
--- before I came up with the SQL approach, I did it the hard way ---
Code:
adb remount
adb pull /data/system/accounts.db /tmp/
EDIT the accounts.db file (I used the SQLite Manager extension in firefox) and delete all of the com.htc rows from the "accounts" table (I had three for weather, news, and stock applications)...
Code:
adb push /tmp/accounts.db /data/system/accounts.db
adb shell reboot
Would anyone care to suggest a more efficient and polished way of doing this same operation? Hmmmmmmmmmm... I guess that'd be an sqlite command-line incantation to be run on the phone...

I just do a factory reset after deleting everything and solves my fc problems.

Wow, thanks! That saved me a lot of headache! I also shortened it into a one-liner:
To check the list beforehand:
Code:
adb shell "echo 'select * from accounts;' | sqlite3 /data/system/accounts.db"
To fix the HTC account issues (as per your method):
Code:
adb shell "echo 'DELETE FROM accounts WHERE type LIKE \"com.htc%\";' | sqlite3 /data/system/accounts.db"

Related

[SCRIPT] Android-Linux Tools v0.2 for Linux [[Suggestions Needed]]

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

ADB Uninstall Failure

I adb pushed some .apks from a Froyo zip onto my mytouch1.2 but they didnt work...
when I try to uninstall them I get a failure message... and when I try adb shell... blah blah blah..."ls" the files arent there...
any help is appreciated
how to uninstall
I've tried a few methods.
The one I've found that works the best is this : mv <source> <destination> ...it's supposed to be a move command but it actually deletes files. rm also likely does the same (eg rm <filename.filetype OR foldername>)
BEFORE using these commands though, type in
adb shell <enter>
cd <foldername> <enter>
cd <foldername> <enter>....to get to folder (directory) of your choice
**TO get to app directory to uninstall apps, do cd system -->cd app -->mv appname.apk
I use the /sdcard as the destination for the mv command - I noticed the files NEVER get moved so this is just a delete command.
You could also delete a whole folder with this command. do cd system
mv app /sdcard
(this would delete the entire app folder/directory from the device).
That's pretty much it. Works for me. Was trial and error though - adb uninstall command ALWAYS resulted in 'failure ' or 'file not found' and the same with adb shell --> # uninstall appname.apk ---> 'failure'.
So I hope this works for you! Good luck .
str8arrow
NOTE: I've had an awful time because my stupid tablet has refused to download things from the market. It stalls in the initial 'starting download' bit and then just hangs, and then says 'download failed'. Apparently there's some problem with the sync'ing but I can't log into Gmail or GoogleTalk to try to resolve this (Gmail won't allow me to enter anything - left it on overnight and it said 'getting mail' / 'sync in progress' and the sync never completed after 12 hrs. The GoogleTalk app just displayed a black screen. So I am getting nowhere.
if anyone knows how to fix this pls let me know. I'm apparently not the only one. Others /various tablets have had similar issues - I have a 7" BPDN (Pandigital black novel).
Please, help!
str8arrow
adb shell <enter>
then
cd system
cd app
mv <filename.apk> <destination> (this should move the file BUT it never shows up in destination or elsewhere, so this is effectively a delete command, you could also do mv <foldername> <destination> to delete a whole folder.
**I usu. use /sdcard as my destination. so mv filename.apk /sdcard
OR
cd system
cd app
rm <filename.filetype> does the same sort of thing.
(eg adb shell <enter>
**I tried the uninstall commands listed but.. (adb uninstall-->'failure', or 'file not found' etc, adb shell --> uninstall --> same error).
Commands for removing apps.
I run as root on all my OS's, so I don't have to navigate to my sdk directory. I just type "adb devices", I don't know how your adb is setup, but get adb running and run these commands.
adb remount
adb shell
rm /system/app/whatever.apk
Or whatever path you pushed the files to. Try running fix_permissions to make your apps run properly and stop FC issues

[GUIDE][HOW-TO] Use VPN in Jellybean without security lock

I am not responsible for anything that may come of or from this information. Use at your own risk!
Step #1)
Create security lock through Settings (pattern, pin, password).
Step #2)
Add VPN connections
Step #3)
Plug the phone in and run these commands (requires adb to be setup properly and drivers). I am sure there is a way to do this directly on the phone but this is easier for me.
Commands to remove security:
Code:
adb shell
sqlite3 /data/system/locksettings.db
update locksettings set value=0 where name='lockscreen.password_type';
.exit
exit
Finished!
For me no reboot was required and you do not have to restore pattern in order to create more VPN connections.
Optional Step:
If you decide that you want to restore the security run the one that fits you.
Commands to restore pattern:
Code:
adb shell
sqlite3 /data/system/locksettings.db
update locksettings set value=65536 where name='lockscreen.password_type';
.exit
exit
Commands to restore pin:
Code:
adb shell
sqlite3 /data/system/locksettings.db
update locksettings set value=131072 where name='lockscreen.password_type';
.exit
exit
Commands to restore password:
Code:
adb shell
sqlite3 /data/system/locksettings.db
update locksettings set value=262144 where name='lockscreen.password_type';
.exit
exit
Great! Thank you!
really helpful, i've been fed up with stupid design.
Brilliant, does it also work for ICS?
I don't have an ICS device. If I can find someone that is willing to let me take a look at their ICS device I can see.
When I restart my phone, it needs a password to access VPN menu. what should I do? I don't want to run these commands every time I restart my phone. any solutions?
does it work with exchange password policy as well?
Sent from my GT-I9300 using xda app-developers app
P30SiNa said:
When I restart my phone, it needs a password to access VPN menu. what should I do? I don't want to run these commands every time I restart my phone. any solutions?
Click to expand...
Click to collapse
Hmm did notice that before I will see whats up with that,
portnoy.vitaly said:
does it work with exchange password policy as well?
Sent from my GT-I9300 using xda app-developers app
Click to expand...
Click to collapse
I am not sure but I would imagine so. I would try with pattern lock and not PIN or Password.
Says that "sqlite3: not found" ....
I justd used Forget password option and entered pin , then i didnt choose any options , and the pattern removed
Just tried this. Added vpn, removed lock pattern. It went back to slide, worked fine.
Rebooted, not visiting VPN settings it's asking me to enter credential storage...any ideas how I can a) get past this without wiping my wifi/vpns, or b) remove this but keep my vpns and slide lock?
sorset said:
Says that "sqlite3: not found" ....
I justd used Forget password option and entered pin , then i didnt choose any options , and the pattern removed
Click to expand...
Click to collapse
Same here.
Works great, thanks for sharing :good:
spumanti said:
Same here.
Works great, thanks for sharing :good:
Click to expand...
Click to collapse
Works for me, too, until I reboot :/
Doesn't work. Apparently it's problem with sqlite.
soinfo_relocate(linker.cpp:1013): cannot locate symbol "sqlite3_enable_load_extension" referenced by "sqlite3"...CANNOT LINK EXECUTABLE
Any help please?
Use Script Manager to make this done on every boot.
1. Make this a batch file:
Code:
#!/system/bin/sh
echo "update locksettings set value=0 where name='lockscreen.password_type';" | sqlite3 /data/system/locksettings.db
and save it to your sdcard
2. Use Script Manager to run it on boot and enable su (root).
3. Test it by running it from script manager and see if it runs correctly. You can try enabling PIN and it should be disabled after running this.
4. Final test: reboot your phone and see if PIN/password is disabled.
Keep in mind this gets executed after everything else, so if you try to wake your phone right away, you might still see the PIN prompt.
Another way without script manager:
1. Make this a batch file:
Code:
#!/system/bin/sh
echo "update locksettings set value=0 where name='lockscreen.password_type';" | sqlite3 /data/system/locksettings.db
and save it to your sdcard as 99pinremove
2. Run the following using adb:
Code:
adb shell
su
mount -o remount rw /system
cp /sdcard/99pinremove /etc/init.d/99pinremove
chmod 755 /etc/init.d/99pinremove
chown root:shell /etc/init.d/99pinremove
exit
exit
In 4.4 there is no such file
Code:
/data/system/locksettings.db
.. any ideas?

adb: Update/rescan contacts without rebooting the android device

I am trying to load the contacts via db directly using following commands.
Code:
adb shell rm /data/data/com.android.providers.contacts/databases/contacts2.db
adb pull /data/data/com.android.providers.contacts/databases/contacts2.db <PATH>
adb push <PATH>/contacts2.db /data/data/com.android.providers.contacts/databases/
However, I have to restart my devices(trying with multiple Android phones) before it can update the contacts.
Is there a way to get the updated contacts from the pushed/removed db (no contacts) without restarting the devices?
I cannot use any third party app due to project requirements. Preferable solution would be via adb or similar command line tools.
Regards,
RA

[TUTORIAL] Resetting a Parental Lock without Factory Resetting (no pre-root required)

So I just spent a few hours digging into this and thought someone might need it sometime down the line.
My wife's job uses a Kindle Fire HD 10 and they have a parental lock on it. Today they needed to change a Wi-Fi setting and couldn't remember the lock password.
The following tutorial will use adb to temporarily root your Fire, update the database to corrupt the lock, and create a new Parental Lock.
What you'll need:
ADB
mtk-su (Download from the first post here, don't worry about using their tutorial since I'll reiterate it here)
1. After you download mtk-su, push it to your device
Code:
adb push path/to/mtk-su /data/local/tmp/
2. Open an adb shell and cd to the data/local/tmp folder
Code:
adb shell
cd /data/local/tmp
3. Write executable permissions to the script
Code:
chmod 755 mtk-su
4. With the screen on, run the script:
Code:
./mtk-su -v
5. You should now be at a root shell (you can tell by the # instead of the $ symbol). Read the mtk-su thread for debugging if you don't get a root shell.
6. Get to your databases folder:
Code:
# cd /data/data/com.android.providers.settings/databases
7. Send some commands to your settings.db to overwrite those parental password values:
Code:
sqlite3 settings.db "insert into secure values(NULL,'parental_password_exist', '0');"
sqlite3 settings.db "insert into secure values(NULL,'parental_control', '0');"
sqlite3 settings.db "insert into secure values(NULL,'com.amazon.parentalcontrols.changed', '0');"
8. Delete the original password salt and key files via:
Code:
rm ./data/securedStorageLocation/com.amazon.parentalcontrols/files/*
9. Congrats, your parental controls are now corrupted! Your WiFi, among other things probably, will not work! Head over to your Settings and click on Parental Controls. Turn them on and create a new password. Now everything will work again.

Categories

Resources