Wednesday, September 11, 2013

How to pause download of Windows Update

Since many years, I have set Windows 7 to automatically download and install any available updates. This way I know I run the most recent version of the OS and its security patches. Today, while being connected to the internet via my cell phone, Windows started a huge download bringing my already slow connection to a virtual halt.

It turns out that there is not direct way to pause an already started Windows Update download. However, if you have admin rights you can force the Windows Update service to stop. Simply launch a command prompt (cmd.exe) with admin rights and run

net stop wuauserv

[1] 'Start or stop Windows update service', Windows Command Line on 2010-08-21.

Wednesday, July 18, 2012

Calibre: Mirroring settings via Dropbox

Calibre is a free and open source e-book library management software that can sync to various e-book readers, including the Amazon Kindle. It also provides automatic and scheduled fetching of RSS feeds from various blogs and news sources, which is then instantly sent/emailed to your e-book reader.  I've been using it for the latter the last six months - it's much more pleasant to read blogs and news on a Kindle than on a computer screen.  Calibre is available on Windows, OSX and Linux.

I run Calibre on a computer at home, but when I travel I turn this off and run Calibre on my notebook.  Unfortunately, this means that I also have to keep update the settings and which news feed I follow on both machines.  However, it turns out it is rather simple to synchronize these settings across machines via a cloud drive.  Below is how you do it on Windows 7 using Dropbox.  Since this setup is not specific to a particular users, it can be applied to all of your machines running Calibre.
  1. Make sure you have a Dropbox account and the Dropbox client up and running.
  2. In your Dropbox folder (e.g. C:/Users/Joe/Dropbox/), create the following subdirectory  mirror/AppData/Roaming/calibre/.
  3. [Optional] If you already have Calibre setup locally, you may wanna copy your current Calibre setting in  C:/Users/Joe/AppData/Roaming/calibre/ to this subdirectory.
  4. Create a Windows shortcut of calibre.exe (e.g. type 'calibre' in the Start menu box), but drag'n'drop it to the desktop.
  5. Right-click on the calibre shortcut icon and select Properties...
  6. Only if 'Start in' is empty, then copy the value in 'Target' to 'Start in' and drop the last part contain 'calibre.exe', e.g. afterward is should be something like "C:\Program Files (x86)\Calibre2\".
  7. In 'Target' paste the following as is (including the double quotes) as one line of text:
    cmd.exe /C "set CALIBRE_CONFIG_DIRECTORY=%USERPROFILE%\Dropbox\private\mirror\AppData\Roaming\calibre && calibre.exe"
  8. [Optional] To have Calibre start in tray, add '--start-in-tray' after calibre.exe in Step 7, cf. Calibre User Manual.
  9. [Optional] Set 'Run' to 'Minimized'.
  10. [Optional] In the 'General' tab, rename the program to 'Calibre (mirrored)'.
  11. [Optional] Click 'Change icon' and set the icon back to calibre.exe, e.g.  "C:\Program Files (x86)\Calibre2\calibre.exe" (the same as the original value of Target).
  12. Click OK.
Now you can start Calibre by clicking on the 'Calibre (mirrored)' shortcut icon.  The first time you start it, you'll be asked a few setup questions, unless you copied your old settings in Step 2.

Monday, June 25, 2012

Do not Factory Reset your Rooted Android Phone (and how to fix it)

So I did it; I hit Settings -> Privacy -> Factory Reset on my rooted LG Optimus V Android 2.2.1 phone (despite having read that one should never ever do this to a rooted Android phone).  Phone tried to reboot, but got stuck in a loop at the Custom Recovery (a bootup menu).  In other words, I bricked the phone - or at least softly so, because there is a solution, which is particularly easy if you have/had a Custom Recovery installed.  This is what I did:
  1. Powered off the phone.
  2. Moved the SD card from the phone to my notebook.
  3. Downloaded [5,068,663 bytes]
  4. Copied the above ZIP file to the root of the SD card.
  5. Moved the SD card back to the phone.
  6. Start the phone by holding down Home + Volume Down, and then the Power button (until LG logo appears).  This will boot the phone into recovery mode.
  7. In the recover menu, select 'install zip from sdcard' (navigate with Volumn Up/Down, Back and Camera keys).
  8. Select 'choose zip from sdcard'.
  9. Select 'Xionia_CWMA_12518.6_VM_Recov[...]'.
  10. Confirm the installation by selecting 'Yes - Install  Xionia_CWMA_12[...]'.
  11. Phone will now be reflashed (fast; a few seconds) while displaying:
    -- Installing: SDCARD:Xionia_CWM
    Finding update package...
    Opening  update package...
    Verifying update package...
    Installing update...
    *-* Flashing Xionia CWMA 12518.4 VM Recovery *-*
    Install from sdcard complete.
  12. Hit Back key and select 'advanced'.
  13. Select 'Fix Recovery Boot Loop'.  Screen will go black and phone will reboot.
  14. Phone will start up the default Android image.
Although it's the default Virgin Mobile LG setup, everything works, i.e. WiFi, 3G and phone calls. Phew!

Since I've previously done a full Nandroid backup using the Custom Recovery, I could also restore the ROM image to the most recent backup I've done by:
  1. Power off the phone.
  2. Boot up the phone in Recovery mode (Home + Volume Down & Power buttons).
  3. Select 'backup and restore' in the Recovery menu.
  4. Select 'Restore'.
  5. Select '2012-05-' (that was my last backup)
  6. Confirm by selecting 'Yes - Restore'.
  7. This will reflash the phone (taking a few minutes) while displaying:
    Xionia CWMA v1.2518.6
    Checking MD5 sums...
    Erasing boot before restore...
    Restoring boot image...
    Restoring system...
    Restoring data...
    Restoring .android_secure...
    Restoring cache...
    sd-ext.img not found. Skipping r
    estore of /sd-ext/
    Restore complete!
  8. In the recovery menu, select 'reboot system now'.
  9. The phone will startup with the ROM and settings you had when you did the backup.
Awesome!  Phone is back to what it used to be.

Friday, June 22, 2012

Convert a JConnect's JFX fax to PDF (without software)

I rarely receive faxes, but when I do I've been using the jConnect fax service (by j2 Global Inc). I signed up for a free account* many years ago and it is still active and I still have my own free fax number for incoming faxes.

When someone sends you a fax, their servers will send it to you as an email attachment.  Interestingly, the attached *.jfx fax document is just a TIFF file, which you can view in any TIFF viewer.  By changing the filename extension from *.jfx to *.tif, you'll be able to double-click to open it.

Alternatively, just upload the *.jfx file to your Google Drive and view it online.  The fax is will then also be searchable and you can create a PDF by clicking 'Print (PDF)'.  By using the Google Drive client, you can set it all up to such that you save the *.fjx attachment to a local directory and the fax will automatically appear on your Google Drive account.

Footnote: (*) I'm not sure if they still provide free accounts; I found this page, but it appears to do nothing when one fills it out.

Thursday, December 22, 2011

Samsung Galaxy Gio (S5660): Unlocking phone

When travelling abroad, I wish to be able to buy a local SIM card of the country and use it in my Samsung Galaxy Gio (S5660) phone. Turns out my phone is locked down so it only works with SIM cards of my Swedish provider. They're offering to unlock it for a fee after 12 months. I can't wait, so I decided to try it myself. After some searching, I found some instructions online that I followed (using Windows 7 Ultimate 64-bit machine):
  1. Verify that the phone is really network locked by "calling" *#7465625#.
  2. Root the phone (so that you can become a superuser below)
  3. Download and install Android SDK Manager (rev. 16).
  4. Enable USB debugging on the phone by enabling Menu > Settings > Applications > 'USB Debugging'.
  5. Connect the phone to the computer via USB cable.
  6. Start the Windows Command prompt (e.g. Start Menu -> cmd) and go to the ' platform-tools' directory where the Android SDK is installed, e.g. cd "c:\Program Files (x86)\Android\android-sdk\platform-tools\".
  7. Run ADB by executing 'adb shell'.
  8. In the ADB shell, become a superuser by executing 'su' (prompt will change from a dollar sign to a hash symbol confirming you are a superuser).
  9. Copy /dev/block/bml5 to the SD card by executing 'cat /dev/block/bml5 > /sdcard/bml5.img'.
  10. Exit superuser mode by executing 'exit' (prompt will go back to a dollar sign).
  11. Exit ADB by executing 'exit'.
  12. Copy the bml5.img file on the SD card to the computer by executing 'adb pull /sdcard/bml5.img'.
  13. Open the bml5.img in a hex-editor, e.g. TotalCommander.
  14. Search for the hexadecimal string "FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 30 30 30 30 30 30 30 30". There was several matches, where some were preceeded by '00000000' (non informative) and some with, say, '15351874' (the 8-digit unlock code; different for each unique phone). Done!
Then I disconnecting and turned off the phone, replaced the SIM card with a SIM card from another provider, and started up the phone. Then the phone detected the new SIM card and that the phone was locked to another provider and asks you to 'Enter Network Lock Control Key'. Entering the above 8-digit phone and voila, the phone was unlocked. Now my phone works also with this other SIM card. Also, calling '*#7465625#' now reports (it used to be that the first one was [ON]):

Network Lock [OFF]
Network Subset Lock [OFF]
SP Lock [OFF]
CP Lock [OFF]

Samsung Galaxy Gio (S5660): Root

There are many reason for acquiring root access ("run as adminstrator") to your Android phone, e.g. remove all ads (AdFree), backup all apps and their settings (Titanium Backup) and unlock the phone so it works with any network provider.

To root my Samsung Galaxy Gio (S5660) with Android 2.3.3 (Gingerbread; firmware KPS), I did the following:

A. "Installed" SuperOneClick on Windows 7 Ultimate 64-bit:
  1. Downloaded SuperOneClick (v2.3.2) and extracted to a directory, e.g. SuperOneClick/.
B. Rooted the phone following instructions by AddictiveTips:
  1. Enable USB debugging on the phone by enabling Menu > Settings > Applications > Development > 'USB Debugging'.
  2. Connected the phone to the computer via USB cable.
  3. Started the Android SDK Manager.
  4. Run SuperOneClick.exe.
  5. In SuperOneClick, click 'Root' (in the 'General' tab).
  6. Wait a couple of minutes. You'll see lots of log entries being printed. Mine ended with the three lines: '[+] Rush did it ! It's a GG, man !', '[+] Killing ADB and restarting as root... enjoy!' and '+++ LOG: write failed (errno=14)'.
  7. Your phone is rooted. It will probably reboot by itself.
C. Verified that the phone was truly rooted:
  1. Start the phone.
  2. Find the 'Superuser' app. If it exists, it is rooted, but you can also start it to make sure; at first you should see an empty list of apps with superuser rights under 'Allow'. Later this list will be populated with apps you allow to run as "superuser", e.g. AdFree and Titanium Backup.

Samsung Galaxy Gio (S5660): Update Android firmware

Current firmware version:
The quickest way to check the current firmware on any Samsung Android phone, dial *#1234#. On my phone I get:


This firmware corresponds to Android 2.3.3 (Gingerbread) with build date June 24, 2011. Note that 'PDA' value is the same as one see in Under Menu > Settings > About Phone > Build number (I have 'GINGERBREAD.XXKPE').

Update firmware:
Install and run Samsung Kies [2] (Windows and OSX). Next, after rebooting the computer, connect the phone to the computer via a USB cable. Make sure to be connected to the internet. The Samsung Kies software will automatically detect and connect to the phone. If there is new firmware available, Kies will report this and offer to update the phone. Make sure to follow the instructions given. After a few minutes, the firmware is updated, and the phone will reboot.

New firmware version:
After updating via Samsung Kies, I get:


which corresponds to Android 2.3.3 (Gingerbread) with build date August 25, 2011.

PS. The reason why I updated in the first place was that my phone completely froze multiple times a day. The only thing to do when it happened was to restart the phone (reboot by holding Home and Power buttons for several seconds, or simply take out the battery). This is apparently a rather common problem. Update: After updating to KPS the phone has worked flawlessly for more than 10 days now.