Related
(additional CHOWN notes added below. If you are getting "chown: unknown user/group system:system" read them!
Ok, we do have a WHOLE other thread that was made a sticky already, but you need to read the WHOLE thing to get all the properly interesting parts. I'll make sure I keep this OP up to date.
The following methods enable side loading and installing of apps onto the captivate, without the need of a program on a computer attached via the SDK. There are multiple methods, and for the most part, these methods that have worked flawlessly for many users here on this forum. We're just collecting them all in one post for speed and clarity.
Methods that assist in loading applications, without modification to the settings (a.k.a still need a computer attached) can be found at the collective wiki, http://samsungcaptivate.wikia.com/wiki/How_to_Sideload
ALL METHODS REQUIRE ROOT & BUSYBOX:
Root your phone, see http://forum.xda-developers.com/showthread.php?t=725555
Busybox : http://www.appbrain.com/app/stericson.busybox
Please, save a clean, un-altered backup copy of this file. To be safe. Rarely does corruption occur, but if it does, it won't be good.
Method 1: From Win7x64, Samsung Drivers, Android SDK installed.
This method uses the tools you already have at hand, as part of the SDK. All instances in code blocks are run inside of the command prompt. You will need to know where you installed your SDK, and the tools directory therein.
Once rooted, go install BusyBox installer from the App Market/AppBrain etc and run it. It will download and install the latest version for you.
From my Win7x64, with USB Debugging ON. Ensure that you phone is UNLOCKED as it the SU app will ask for permission for 'UNKOWN' in the following command.
Connect to PC, and Eject/Safely Remove the SD card, and "Turn off USB Storage" on the phone.
open command prompt, follow along:
Code:
> c:
> cd \android\tools
> adb shell
$ su
# cp /dbdata/databases/com.android.providers.settings/settings.db /sdcard/settings.db
# exit
$ exit
mount the SD cards to the pc,
"USB Connected select to... ", Mount
mine mounted as H:
Code:
> copy H:\settings.db settings.db
> sqlite3 settings.db
~> update secure set value="1" where name="install_non_market_apps";
1 row updated
~> .quit
> copy settings.db H:\settings.db
Eject the drive, safely remove, etc.
"Turn off USB storage" etc, to mount it back to the phone
Code:
> adb shell
$ su
# cp /sdcard/settings.db /dbdata/databases/com.android.providers.settings/settings.db
# chmod 660 /dbdata/databases/com.android.providers.settings/settings.db
# chown system.system /dbdata/databases/com.android.providers.settings/settings.db
# exit
$ exit
> adb reboot
Bam. Done.
Method 2: with Root Explorer
(courtesy of kirbo20)
This is a pretty easy process. I went in to Root Explorer - dbdata - databases - com.android.providers.settings, copied settings.db to my sd card, edited it on my pc with a db editor changed 0 to a 1 next to non market apps. Copied it back to the original directory, rebooted and installed a non market app.
(added by gotfolk)
again using FF plug in..
Click Secure on the left pane
click on install_non_market_apps
click edit
number 3 states value click there and type in 1. hit ok
(/gotfolk)
Please use caution. If you want to make sure the db save properly open it on your sd card before you copy and replace the original. It should open up as a readable table. If it opens up in a txt editor its corrupt. This permanently enables non market apps. You can not toggle it on and off.
( This is a sqlite3 database file, you can find many GUI editors that will be able to handle the editing, including a FF plugin. Search "SQLite" )
Method 3: with Root Explorer & Sqlite Editor & Terminal Emulator
(courtesy of ice3186)
- Open Root Explorer
- Browse to /dbdata/databases/com.android.providers.settings/
- copy settings.db to the root of your sd card ( /sdcard/ )
- Click on the newly copied settings.db in /sdcard/, with SQLite Editor installed, you can open and edit it here.
- Select the "secure" table, and update the value of 'install_nonmarket_apps' from 0 to 1, and save.
- close out of SQLite editor
- copy the modified file ( /sdcard/settings.db ), and browse back to /dbdata/databases/com.android.providers.settings/ and paste
- confirm the overwrite if asked and then open again to confirm it's been changed.
- open Terminal Emulator
Code:
$ su
# chmod 660 /dbdata/databases/com.android.providers.settings/settings.db
# chown system.system /dbdata/databases/com.android.providers.settings/settings.db
# reboot
- reboot phone.
No PC, no Mac, no drivers, no SDK. Viola.
Method 4: Mac & Android SDK
You will see "[sdcard]" through this method...I don't own a Mac so I'm guessing a bit.
This method uses the tools you already have at hand, as part of the SDK. All instances in code blocks are run inside of the Terminal. You will need to know where you installed your SDK, and the tools directory therein.
Once rooted, go install BusyBox installer from the App Market/AppDroid etc and run it. It will download and install the latest version for you.
From a Max OS X, with USB Debugging ON. Ensure that you phone is UNLOCKED as it the SU app will ask for permission for 'UNKOWN' in the following command.
Connect to Mac, and Eject/Safely Remove the SD card, and "Turn off USB Storage" on the phone.
open Terminal, follow along:
Code:
> cd /android/tools
> ./adb shell
$ su
# cp /dbdata/databases/com.android.providers.settings/settings.db /sdcard/settings.db
# exit
$ exit
mount the SD cards to the Mac,
"USB Connected select to... ", Mount
mine mounted as [sdcard]
Code:
> cp [sdcard]/settings.db settings.db
> ./sqlite3 settings.db
~> update secure set value="1" where name="install_non_market_apps";
1 row updated
~> .quit
> cp settings.db [sdcard]/settings.db
Eject the drive, safely remove, etc.
"Turn off USB storage" etc, to mount it back to the phone
Code:
> ./adb shell
$ su
# cp /sdcard/settings.db /dbdata/databases/com.android.providers.settings/settings.db
# chmod 660 /dbdata/databases/com.android.providers.settings/settings.db
# chown system.system /dbdata/databases/com.android.providers.settings/settings.db
# exit
$ exit
> ./adb reboot
Method 5: Android SDK only
Of course, this also requires root and BusyBox.
From the android sdk tools folder in a command prompt:
note: all linux/mac should use './adb' in place of just 'adb', and place quotes on the echo statement between echo and |
Code:
adb shell
su
chmod 666 /dbdata/databases/com.android.providers.settings/settings.db
exit
exit
adb pull /dbdata/databases/com.android.providers.settings/settings.db settings.db
echo update secure set value = 1 where name = 'install_non_market_apps';|sqlite3 settings.db
adb push settings.db /dbdata/databases/com.android.providers.settings/settings.db
adb shell
su
chmod 660 /dbdata/databases/com.android.providers.settings/settings.db
chown system.system /dbdata/databases/com.android.providers.settings/settings.db
reboot
NOTICE
You must chown the settings.db file and reboot once it is back in its original location. If you do not, you will not be able to alter settings such as WiFi,GPS, default Ringtones, etc. It's also highly likely that you may wish to chmod to 660 (-rw-rw---), so I've tacked that in here and above.
Code:
> adb shell
$ su
# chmod 660 /dbdata/databases/com.android.providers.settings/settings.db
# chown system.system /dbdata/databases/com.android.providers.settings/settings.db
# exit
$ exit
> adb reboot
Chown Note
In the event that you are getting "chown: unknown user/group system:system" please try 1000.1000 as this has been reported to work on several of the samfirmware-released roms that fail with this message.
Absolutely do not use someone else's settings.db unless you specifially make it a point replace android_id with your android_id!
Special Note
Any of these adb comments can be run from Terminal Emulator (Android Terminal Emulator, free) from the su command. I use the ADB here as it is a lot easier to type into. Terminal Emulator will provide you with a shell that is an exact match of the 'adb shell' command, as they both simply provide the shell to you.
Result:
After completing this process you will be able to load non-market apps directly from the APK files, SDK tools, tools such as DroidExplorer and apps such as APKtor.
You will be able to download the APKs directly, and then install from your favorite file browser (e.g. MyFiles(s), Astro(f), RootExplorer($)...)
Tools
SQLite Administrator (Win, GUI, no FF required) http://sqliteadmin.orbmu2k.de/
SQLite Manager (FF addon, search for it)
Application links
Root Explorer http://www.appbrain.com/app/com.speedsoftware.rootexplorer
SQLite Editor http://www.appbrain.com/app/com.speedsoftware.sqleditor
Terminal Emulator http://www.appbrain.com/app/jackpal.androidterm
BusyBox http://www.appbrain.com/app/stericson.busybox
bump.. settings.db people.. please read the threads!!
good stuff!!!
Ok. I can find settings.db with root explorer. i can copy it and i put it in my sdcard folder but nothing is there when i try to find it on my computer. Im trying to use SQlite editor on firefox. Im also on a powermac g4 if that makes a difference. I did download sqlite editor on my phone and I can find where to change the values for installing non market apps but when I change from a zero to a one it denies me. Please help
Ok, so let me make sure I have your process:
- Rooted
- Installed busybox ?
- Installed Root Explorer
- copied settings.db to /sdcard
-- cant see the file when mounted to Mac, thus can't edit with FF plugin
-- SQLite editor for android wont allow access..
(is this the SQLite Editor you used? http://www.appbrain.com/app/com.speedsoftware.sqleditor)
Try installing "Android Terminal Emulator" from the market (http://www.appbrain.com/app/jackpal.androidterm)
- open Terminal Emulator
$ su
# cd /sdcard
# chmod 777 settings.db
# exit
- Open the sqlite editor, and make the change
- back to Terminal Emulator
$ su
# chmod 660 settings.db
- proceed with rest of instructions.
how many more threads do we need on the same thing? We already have ALL of this info posted, several times.
designgears said:
how many more threads do we need on the same thing? We already have ALL of this info posted, several times.
Click to expand...
Click to collapse
Please read my initial post, first few lines. I explained why, specifically: Consolidation.
Thanks I will give it a try later today.
Sent from my SAMSUNG-SGH-I897 using XDA App
- OP updated to reflect stock ownership settings for 'chown'
Also, which sqlite app are you using? I'll put that up as method 3 if it works out nicely for you.
fixed a typo in the chown command.. bad copy paste.. bad.. doh.
added method 3 courtest of ice3186
added links to Root Explorer ($), SQLite Editor ($) and Android Terminal Emulator (free) and added the chmod/chown commands to method 3, as they were skipped by accident.
bump** for newcomers, sry.
thanks max for adding the third method. this was by far much easier than the first two methods. I have a hard time getting my mac to talk to my phone sometimes and it was good to not have to plug the lil guy in at all. Worked like a charm
myself and ice3186 are glad we could be of help
If I had accidentally deleted the settings.db how should I go about recovering my phone? Now I have the issue that my phone won't boot past the boot animation and I'm notbsure what to do
mkslt4 said:
If I had accidentally deleted the settings.db how should I go about recovering my phone? Now I have the issue that my phone won't boot past the boot animation and I'm notbsure what to do
Click to expand...
Click to collapse
Did you make any kind of backup before hand?
You may have to use someone else's settings.db and then do a factory reset.
Depending on how much you've done with the phone I'd suggest deciding on doing a the reboot process for rooting, but choosing to clear data. This may rebuild it, I am not sure.
my dbdata directory is empty.. My phone is less then 2 hours old and i have some market apps installed..
xetrev said:
my dbdata directory is empty.. My phone is less then 2 hours old and i have some market apps installed..
Click to expand...
Click to collapse
Oh, if it's running, then this folder isn't actually empty.
What are you using to browse this folder?
i followed this guide to a T yesterday when i did this. I used option 1, ADB commands on terminal since i'm a mac and it was super easy, did it in about 5 minutes.
this is just my opinion but i think everyone should try playing with the ADB commands, they're actually really useful and educational to know. and if you should brick your phone, just use clockwork recovery to restore it.
that being said, maybe you should add a disclaimer that when done on a mac, the adb commands require a "./" in front (so adb reboot becomes ./adb reboot). cp, chown, and chmod commands don't need it though (or at least i didn't).
Pushing files over adb has never been easy. There are some external tools for sending files over adb, but I like native, Windows-integrated ones.
The trick is extremely easy. It works with adbWireless and similar applications. It could work with USB connection too, but I rarely use it.
HEADS UP: Be sure to check all nice(r) scripts by Daneshm90 down the thread!
Prerequisites:
-adb
-adbMagic or similar for wifi connection, none for USB only.
How to?
For better look you will need two files:
adb_send.cmd;
Code:
adb connect 192.168.1.103
adb push %1 /sdcard/
pause
and a shortcut to it, where you can customize icon and name.
1) create your adb_send.cmd anywhere on disk (I put mine in android-sdk-windows\tools directory),
2) customize the ip address, to point at your device (I have router with static DHCP, so everytime my device connects it leases the same address)
3) then go to:
Windows Vista/7:
Code:
%APPDATA%\Microsoft\Windows\SendTo
(paste it in explorer's address bar, or hit WIN+R and paste there, Enter), and place shortcut to script file created earlier. (drag it with right mouse button)
4) customize the icon and name of the shortcut
Next time you click on any file menu appears:
good idea, btw how did you find the ip address? 192.168.1.103... i am not able to send using the same
When you use adbWireless, under big orange button you will see something like: "adb connect 192.168.1.103:5555"
ravi4chahal said:
good idea, btw how did you find the ip address? 192.168.1.103... i am not able to send using the same
Click to expand...
Click to collapse
I think that you will have to find your own ip adress mate
xan said:
When you use adbWireless, under big orange button you will see something like: "adb connect 192.168.1.103:5555"
Click to expand...
Click to collapse
ok thanks, I installed adbWireless and now it is working ... however is there any way of getting rid of the CMD window that pops up while transfer?
hmm..
I think there is. Right click on the shortcut (this in "%APPDATA%\Microsoft\Windows\SendTo")properities -> run -> minimised
Delete "pause" line from script, and command line is hidden.
//double, sry
How's this :
Code:
@echo off
echo Where to push the file ? eg (/data/1.apk)
SET /P pat=Enter :
echo Pushing...
adb push "%1" /sdcard/%~n1
adb shell su -c "cp /sdcard/%~n1 %pat%" -root
adb shell rm /sdcard/%~n1
echo Done
It works directly for me.
Right click the file, Send to - > Bluetooth Devices.
Select my Phone and press Send.
Very cool tip, made a couple different cmd shortcuts to copy to different part of the sdcard(roms/apps/misc).
peachpuff said:
Very cool tip, made a couple different cmd shortcuts to copy to different part of the sdcard(roms/apps/misc).
Click to expand...
Click to collapse
The script i posted above does just that except you don't need multiple shortcuts.
When you run it'll as you where u want the file to go.
Thanks for the tip.
And Daneshm90 i tried your command, but..is there a way to do it without su? Since when i try ur command i always have to accept the root request, and it dosnt seem to push the file right anyway. So im asking is there a way to do it without su? Cuz if i do the original i dont need to press the root request all the time.
Thanks in advance mate.
borgen92 said:
Thanks for the tip.
And Daneshm90 i tried your command, but..is there a way to do it without su? Since when i try ur command i always have to accept the root request, and it dosnt seem to push the file right anyway. So im asking is there a way to do it without su? Cuz if i do the original i dont need to press the root request all the time.
Thanks in advance mate.
Click to expand...
Click to collapse
It should only ask you to accept once, not everytime.
Well sure i can modify mine where if u say /sdcard/ then it doesn't do that whole root crap and just pushes to sdcard.
Gimme a few.
Daneshm90 said:
It should only ask you to accept once, not everytime.
Well sure i can modify mine where if u say /sdcard/ then it doesn't do that whole root crap and just pushes to sdcard.
Gimme a few.
Click to expand...
Click to collapse
Thanks alot man, you'r awesome
Here try this one
Code:
@echo off
echo Where to push the file ? eg (/data/1.apk)
SET /P pat=Enter :
if not "%pat:sdcard=%"=="%pat%" goto sdcard
echo Pushing...
adb push %1 /sdcard/%~n1
adb shell su -c "cp /sdcard/%~n1 %pat%" -root
adb shell rm /sdcard/%~n1
echo Done
:sdcard
echo Pushing...
adb push %1 %pat%
echo Done
Note, if you have a rom where when you do "adb shell" and ur automatically in "su" mode. Then u can simply change the script to :
Code:
@echo off
echo Where to push the file ? eg (/data/1.apk)
SET /P pat=Enter :
echo Pushing...
adb push %1 %pat%
echo Done
flawless!!!!
Thank you!
Does this require root?
Daneshm90 said:
Here try this one
Code:
@echo off
echo Where to push the file ? eg (/data/1.apk)
SET /P pat=Enter :
if not "%pat:sdcard=%"=="%pat%" goto sdcard
echo Pushing...
adb push %1 /sdcard/%~n1
adb shell su -c "cp /sdcard/%~n1 %pat%" -root
adb shell rm /sdcard/%~n1
echo Done
:sdcard
echo Pushing...
adb push %1 %pat%
echo Done
Note, if you have a rom where when you do "adb shell" and ur automatically in "su" mode. Then u can simply change the script to :
Code:
@echo off
echo Where to push the file ? eg (/data/1.apk)
SET /P pat=Enter :
echo Pushing...
adb push %1 %pat%
echo Done
Click to expand...
Click to collapse
thats awesome, how would one make it crate and copy the folder structure as well? did this with a folder with pics in it and it just put every pic on the root of my sd card.
or how about asking for ip then using what was imputed?
Send To Menu For ADB Install
You can modify the above instructions to use the Send to Menu to install applications over wireless.
Code:
adb connect 192.168.1.46:5555
adb install %1
pause
Substitute your IP address for 192.168.1.46 (may or may not need the port)
Save your Install.cmd or anything.cmd anywhere on your hardisk. Make a shortcut in
Code:
%APPDATA%\Microsoft\Windows\SendTo
to the .cmd.
Right click an .apk and select Send To -> Install.cmd
Works like a dream using my Nexus 1 and adbWireless
nice one @wacckkoo1
this has so much potential.
i found an app on the market called ADB over WIFI widget. it dosent care if your connected to wifi or not, it will just start, making this possable to do while wireless tethering to a laptop
thats why im wanting to know how i can get it to ask for ip address because it wont always be the same.
Using the amazing overclock module made by Tiago Sousa http://code.google.com/p/milestone-overclock/ , it is possible to modify the frequency tables on the motoACTV.
I'm not responsible for what you do to your device. This is potentially dangerous.
Extract the attached overclock.ko in some folder of your computer and open a command line in that folder. You need to have adb installed.
Issue the following commands:
Code:
adb remount
adb push overclock.ko /system/lib/modules/
adb shell insmod /system/lib/modules/overclock.ko omap2_clk_init_cpufreq_table_addr=0xc0049150
adb shell 'echo "0 1000000" > /proc/overclock/freq_table'
adb shell 'echo "1 800000" > /proc/overclock/freq_table'
adb shell 'echo "2 600000" > /proc/overclock/freq_table'
adb shell 'echo "3 300000" > /proc/overclock/freq_table'
adb shell 'echo "1 300000000 20" > /proc/overclock/mpu_opps'
adb shell 'echo "2 600000000 30" > /proc/overclock/mpu_opps'
adb shell 'echo "3 800000000 45" > /proc/overclock/mpu_opps'
adb shell 'echo "4 1000000000 45" > /proc/overclock/mpu_opps'
adb shell "echo 1000000 > /proc/overclock/max_rate"
adb shell "echo 45 > /proc/overclock/max_vsel"
This will create 4 frequency steps:
300MHz. This is the minimum we can get with the current kernel.
600Mhz. This is the stock highest speed. Now the voltage is lower.
800Mhz.
1Ghz.
Now, you can use a program like setCPU http://forum.xda-developers.com/showthread.php?t=505419 to set the maximum and minimum speeds.
Enjoy
On this command (after copying and pasting your commands above):
Code:
adb shell 'echo "0 1000000" > /proc/overclock/freq_table'
I get a return of:
Code:
The system cannot find the path specified.
I tried next to re-run:
Code:
adb shell insmod /system/lib/modules/overclock.ko omap2_clk_init_cpufreq_table_addr=0xc0049150
but it failed, because it already exists.
EDIT: I believe they should be like this:
Code:
adb shell "echo '0 1000000' > /proc/overclock/freq_table"
adb shell "echo '1 800000' > /proc/overclock/freq_table"
adb shell "echo '2 600000' > /proc/overclock/freq_table"
adb shell "echo '3 300000' > /proc/overclock/freq_table"
adb shell "echo '1 300000000 20' > /proc/overclock/mpu_opps"
adb shell "echo '2 600000000 30' > /proc/overclock/mpu_opps"
adb shell "echo '3 800000000 45' > /proc/overclock/mpu_opps"
adb shell "echo '4 1000000000 45' > /proc/overclock/mpu_opps"
EDIT 2: That didn't work... the frequencies aren't in setcpu, even after re-detecting speeds.
can you try this command?
Code:
adb shell grep omap2_clk_init_cpufreq_table /proc/kallsyms
It should return a number, and this number is the one that has to be used for the insmod.
I haven't updated my MotoActv in a while and maybe the kernels have changed.
Code:
C:\Users\Owner\Desktop\MiniADB>adb shell grep omap2_clk_init_cpufreq_table /proc
/kallsyms
[B]c0049150[/B] T omap2_clk_init_cpufreq_table
There was no error when running the insmod the first time, it went through successfully, just the next several lines, and then no change at the end, even after a reboot and re-checking the frequencies in SetCPU.
You are right about the commands, for windows, you have to use this:
Code:
adb remount
adb push overclock.ko /system/lib/modules/
adb shell insmod /system/lib/modules/overclock.ko omap2_clk_init_cpufreq_table_addr=0xc0049150
adb shell "echo '0 1000000' > /proc/overclock/freq_table"
adb shell "echo '1 800000' > /proc/overclock/freq_table"
adb shell "echo '2 600000' > /proc/overclock/freq_table"
adb shell "echo '3 300000' > /proc/overclock/freq_table"
adb shell "echo '1 300000000 20' > /proc/overclock/mpu_opps"
adb shell "echo '2 600000000 30' > /proc/overclock/mpu_opps"
adb shell "echo '3 800000000 45' > /proc/overclock/mpu_opps"
adb shell "echo '4 1000000000 45' > /proc/overclock/mpu_opps"
adb shell "echo 1000000 > /proc/overclock/max_rate"
adb shell "echo 45 > /proc/overclock/max_vsel"
Do not reboot! This changes are not save anywhere yet. It's a bit dangerous because the system will not boot if you put wrong values in there. I'm leaving this for later.
Good work, however the changes are not persistent to reboots. I put them in init.goldfish.sh but still not persistent. When doing it from shell, the changes are there in SetCPU, just not after a reboot. Maybe we could script it somewhere else to start at reboot...
Regards...
I added init.d to the /system/etc folder and added my script - still nothing
I added the script in other shells but still nothing...
I heard that SManager will boot scripts at logon, maybe this is the way to go?
There are a few scripts that are launched by init directly. One for the keyboard, one for preinstall, etc.
Try adding the insmod and echo commands to one of those. I'll test this later and post about it.
I amended the one for the keyboard, no dice. I am going to try again though... keep you informed.
init_prep_keyboard.sh keeps reverting back to what it was before amendments. I am sure that I verified its permissions prior to reboot, it just went back to what it was before and deleted the .BAK file too, wierd.
Peace
Working Solution...
I've tested the method above and it works perfectly.
But as mentioned, the script has to be executed upon every reboot.
Working Solution !!!
I've tested this and it works 100%
- Dump boot.img from watch.
- Extract and decompile boot.img
- Create overclock.sh and put it in etc folder from boot.img
- Write entire script in overclock.sh
- Open init.rc from boot.img
- Add exec /system/etc/overclock.sh in init.rc
- Save changes to init.rc
- Repack boot.img
- Push modified boot.img to watch via fastboot
- Restart watch.
Consider adding overclock.ko in system.img
Overclock is now permanent !!! Even after reboot :-D
tansoftware said:
I've tested the method above and it works perfectly.
But as mentioned, the script has to be executed upon every reboot.
Working Solution !!!
I've tested this and it works 100%
- Dump boot.img from watch.
- Extract and decompile boot.img
- Create overclock.sh and put it in etc folder from boot.img
- Write entire script in overclock.sh
- Open init.rc from boot.img
- Add exec /system/etc/overclock.sh in init.rc
- Save changes to init.rc
- Repack boot.img
- Push modified boot.img to watch via fastboot
- Restart watch.
Consider adding overclock.ko in system.img
Overclock is now permanent !!! Even after reboot :-D
Click to expand...
Click to collapse
Can you possibly make a patched boot.img for us?
tansoftware: This is no easy task on a windows box... I will try on Fedora...
a detailed walkthrough would be superb! i.e. How-to? Otherwise GIYF
Peace
EDIT: This ain't easy in linux either...
If you could post your modified Boot.img, that would be killer!
What bash shell did you use upon init.rc? Could you at least share that with us?
dproldan: This thing WIZZes at 1Ghz! If there were just an easier way to make it persistent across reboots... but what a difference.
I posted on the other motoactv thread a very easy way to overclock.
You need android overclock and rom toolbox pro (maybe the free version works I have no idea)
1. Open android overclock select advanced/custom.
2. Scroll to bottom and select apply preset. This gives you four slots 350, 500, 800, 1000.
3. Open rom toolbox pro, performance, cpu control.
4. Slide the bar to desired speed. You can also set profiles in this section to clock down to 350 while the screen is off etc.
I was able to apply at boot etc and haven't lost the overclocking settings. With cf-bench my score went from 1504 to 2370. You can probably apply settings beyond the slots listed above but you will need to increase the voltages in android overclock. I haven't had time to try it. Another microsoft certification exam this week.
Updated Method...
Jeff said:
tansoftware: This is no easy task on a windows box... I will try on Fedora...
a detailed walkthrough would be superb! i.e. How-to? Otherwise GIYF
Peace
EDIT: This ain't easy in linux either...
If you could post your modified Boot.img, that would be killer!
What bash shell did you use upon init.rc? Could you at least share that with us?
Click to expand...
Click to collapse
I can't share my boot.img at this time as it is highly experimental and could easily & un-reversibly brick your watch. My boot.img contains a modified bootstrap.bin that flashes upon boot and forces Android to boot from the built-in MMC instead of internal nvram. Extremely buggy at this stage with several crashes but I'm no longer limited by the 256mb ram on the watch. Hopefully after the bugs are ironed out, we can all enjoy full 8/16 gigs of space. This trick was taken from the nook color modified boot code.
As for how to embed the code into your own boot.img, I believe @Prack posted a simpler cleaner method to overclock the watch. If his method does not work as explained, I'll provide a more thorough explanation of my method.
tansoftware said:
Extremely buggy at this stage with several crashes but I'm no longer limited by the 256mb ram on the watch.
Click to expand...
Click to collapse
Uh what?
eXecuter.bin said:
Uh what?
Click to expand...
Click to collapse
My guess is he's talking about a swapper2 or some other swap file. It helps but it by no means replaces having more ram. I was on a droid 1 for years and the biggest issue with that phone was the ram/internal storage space. I used swap and 2nd sdcard partitions to make up for it. I'm guessing he's doing the same thing with the watch. Would be interesting to see if he gets any actual improvement.
any more news on this?
permanent settings for the overclock
Attached is a modified "loadpreinstalls.sh" file that will load the module and apply the settings at boot.
Be careful with this, it can prevent your device from booting, requiring a full system reinstall to bring it back.
so, download the overclock.ko from the first post, download and extract this loadpreinstalls.sh to the same folder in your computer and issue this commands from a terminal:
adb remount
adb push overclock.ko /system/lib/modules/
adb push loadpreinstalls.sh /system/bin/
adb shell chmod 755 /system/bin/loadpreinstalls.sh
adb reboot
Now you can use SetCPU to choose the speeds you like and make its changes permanent.
This is working fine for me with the current MotoACTV system releases, it could be broken for some older versions.
Enjoy
This sounds like an awesome application - any way to make it easier for the lay (er) people that know just enough to be dangerous?
mattyv said:
This sounds like an awesome application - any way to make it easier for the lay (er) people that know just enough to be dangerous?
Click to expand...
Click to collapse
How about this. I just wrote a simple windows install script and included all of dproldan's needed files, so all you have to do is unzip this to your desktop and run "runme.bat".
Pre-requesites:
-ACTV must be rooted
-ACTV must be plugged into computer and turned on normally
Called it "dproldan_overclock".
Even included the ADB drivers.
Hello all!
I have a Nexus 7 with a broken screen and non-functional LCD (i.e., no backlight or any changes visible on the screen). It has CM10.1 (probably a January build) and CWM (I want to say 5.x, but I don't remember). I had a complex screen unlock password, so I stupidly rebooted into recovery and did a factory reset via ADB. However, this caused the debugging flag to be disabled, hence destroying my ability to control the device through ADB.
Questions:
1) Can someone walk me through the procedure to go from the device's "off" state to CWM?
2) Can someone tell me how to re-enable the debugging switch after mounting system?
Thanks!
I am not sure, but I think ADB in recovery mode is always enabled, so why do you want to enable ADB for the "normal" mode? You can do everything in recovery mode, too.
It works!
AndDiSa said:
I am not sure, but I think ADB in recovery mode is always enabled, so why do you want to enable ADB for the "normal" mode? You can do everything in recovery mode, too.
Click to expand...
Click to collapse
You can do a lot of things in recovery mode, except for setting up applications once they are installed. I wanted to set up a VNC server on that tablet so I can see the screen and click on whatever, and eventually use the device's sensors and antennas for other reasons. On top of that, I was having the stupid issue of not being able to go into recovery again (since you need to scroll through a menu before reaching the "Recovery" option on the Nexus 7).
Anyways, I got it to work now:
To go into "Recovery" mode and enable ADB inside the ROM (I had CM10.1 installed, but it shouldn't matter for most JB roms):
1) Turn the tablet off or check that it is off. Since my screen was broken, I ended up opening it and unplugging/replugging the battery
2) Vol Down + Power button, wait for ~5 seconds
3) Press Vol Down twice, and then press Power
4) On computer, go to "adb shell"
5) Enter the following commands:
Code:
mount /system
mount /data
echo persist.service.adb.enable=1 >> /system/build.prop
cp /data/data/com.android.providers.settings/databases/settings.db /data/data/com.android.providers.settings/databases/settings.db.old
9) Exit adb, enter command:
Code:
adb pull /data/data/com.android.providers.settings/databases/settings.db.old ./settings.db
10) Using any SQL database editor, modify settings.db to change "adb_enabled" to 1
11) Save, exit, and enter command:
Code:
adb push settings.db /data/data/com.android.providers.settings/databases/settings.db
Now, you can reboot the device (adb reboot). After a few seconds, you should be able to capture screenshots.
I wrote a little bash script to automate the process, so I can get a (somewhat) moving image (at best, I got 4 FPS )
Code:
while true; do
adb shell screencap -p | sed 's/\r$//' > screen2.png
if [ -s screen2.png ]
then
cp screen2.png screen.png
fi
done
Note that it is "buffered" -- if adb fails for any reason, the code will continue until adb is able to get another image.
At this point, you can start adb shell, and then use the following command to send taps, swipes, keyevents, or text:
Code:
input text <string>
input keyevent <key code number or name>
input tap <x> <y>
input swipe <x1> <y1> <x2> <y2>
Doing this, I was able to get all the way to installing a VNC server. I used Droid VNC Server:
https://play.google.com/store/apps/details?id=org.onaips.vnc&hl=en
Of course, you can choose whatever server you want. Just configure it correctly, and then you can stop the script and access the tablet remotely. Also, remember to disable the screen lock -- it's really annoying to have to swipe on the lockscreen using the command each time.
At this point, I've gone ahead and enabled ADB over WiFi, allowing me to access virtually everything for this device from any location.
Time to build something with my (severely handicapped) Nexus 7!
Thank you for this interesting post!
I wanted to suggest a similar process, but I first I wanted to understand better, what you wanted to reach. Yeah, ADB is a very powerful tool, I do not want to miss it.
(as dhayman11 pointed out, "unknown sources" is in security settings, not developer options. but no luck anyway, like most of the settings app, it also crashes if you try to set it.)
instead, here is an extremely stupid idea that just came to me.
1. turn on adb wifi debugging
2. sideload your favorite terminal, e.g.
http://jackpal.github.com/Android-Terminal-Emulator/downloads/Term.apk
(ok I lied. you will need your desktop/laptop/phone/whatever, exactly 1 time. step 2 will be skipped forever after that 1 time.)
3. fire up said terminal from the settings->applications menu.
4. (LOL!)
$ adb devices
4a. if the above command shows no devices,
$ adb connect localhost
and proceed to step 5.
4b. if the command shows exactly 1 device, e.g. "emulator-5554", proceed to step 5.
4c. if the command shows more than 1 device (wtf?!) then you will need to specify a device of your choice ("-s somedevice") in every subsequent adb command, e.g.
$ adb -s emulator-5554 <whatever>
$ adb -s localhost:5555 <whatever>
etc.
5. e.g.
$ adb install /sdcard/Download/foobar.apk
$ adb shell
$ adb uninstall -k com.something.somethingelse
etc. etc.
6. profit? profit!
ok here is a slightly-less incoherent form of the senior-moment-reply I posted earlier
several days ago it occurred to me to alternatively use sshd for terminal access, because:
-a) I feel a little unsafe leaving adb wifi enabled all the time (ok it's only a small thing to turn it on and off, but still) - and for security reasons there is no way to enable/disable it programmatically e.g. from a script/shell/terminal/app (well theoretically this is not exactly true, but practically it is)
-2) some people (i.e. me) would like to do shell/terminal remotely sometimes, rather than on the AFTV (and other people don't have/want a keyboard)
ssh access makes a great alternative to Term.apk, but the problem is:
- Term.apk and/or (pick your favorite android ssh server) don't have permission to run e.g. "pm install foo.apk" - it will fail. (btw 'pm' is a great command, take a look sometime at all the options. it shares a lot of functions as the adb command itself. 'am' is another fun command...)
- so, the hilarious workaround of enabling adb wifi, "adb connect", and then finally "adb shell" or "adb install" etc., is still required. (b/c the adb user is in the 'shell' group, among others - giving it permission to run /system/bin/pm) - oh well.
for random reference:
Code:
127|[email protected]:/ $ id
uid=2000(shell) gid=2000(shell) groups=1004(input),1007(log),1009(mount),1011(adb),1015(sdcard_rw),1028(sdcard_r),3001(net_bt_admin),3002(net_bt),3003(inet),3006(net_bw_stats)
[email protected]:/ $ exit
[email protected]:/ $ id
uid=10009(app_9) gid=10009(app_9) groups=1015(sdcard_rw),1028,3003(inet),50009(app_40009)
(also note it appears the adb shell user might possibly have 'mount' abilities, but since the /dev/block/sd* nodes permissions' are really locked up, who knows...)