RandomSequence

  • Subscribe to our RSS feed.
  • Twitter
  • StumbleUpon
  • Reddit
  • Facebook
  • Digg
Showing posts with label android. Show all posts
Showing posts with label android. Show all posts

Monday, July 1, 2013

Do not upgrade to CM10.1 if you use Bluetooth A2DP extensively

Posted on 3:53 PM by Unknown
I flashed my Nexus S to CM10.1 recently and found that the A2DP streaming stutters so badly to the point of being unusable. Some googling reveals that from Android 4.1 to 4.2, Google swapped the Bluez stack that was used in Android since 2.x and replaced it with a stack contributed by Broadcom. This replacement has apparently created more issues than it has solved.

Anyway, I am back to CM10 (based on Android 4.1.2 with the Bluez stack), and all is well again. So if you use A2DP as much as I do (I listen to podcasts, 1~2 hours a day), you have been warned!
Read More
Posted in a2dp, android, bluetooth | No comments

Tuesday, June 18, 2013

Samba Server on Android Media Player

Posted on 12:57 AM by Unknown
I recently bought an Android-based media player: the Minix Neo X5. It came with the original firmware, which had issues playing the MTS video files that my digital camera produces, so I promptly upgrade to the latest ver 011 of the firmware. That solved the MTS playback issue, but the firmware itself was not very stable and hang quite frequently. So I promptly installed Clockmod Recovery, followed by the CWM version of Finless V1.2b. Now everything is fast and stable!

Next, I needed an SMB server on the media player so that I can manage its content from other PCs in the house. Surprisingly this turned out to be harder than I thought given the hackish nature of Android.

SambaDroid was quite easy to install and work with. Unfortunately, it does not support files > 2GB in size. This is quite a major limitation given than many media files these days are > 2GB in size.

Samba Server turned out to be a dud. Despite having root access, I couldn't set it up so that it is accessible by other Windows PCs. I even performed some registry hacks to enable legacy NTLM without any success.

I had partial success with Samba Filesharing (V1.0.6) and it supports files > 2GB, but I could only get it to work occasionally after a lot of coxing. Turns out it does not yet support Jelly Bean, so the app crashes the other 99% of the time, even with the samba-rc hack.

With no other candidates to try, I tried hacking into Samba Filesharing to see if I can make it work better with JB. Armed with adb shell,  I found that the Android version of smbd and nmbd are found under /data/data/com.funkyfresh.samba/files and can be started by running:

> sh ./samba-rc restart

But the app itself interfered with the operation of the daemons. Perhaps it is trying to control them and ended up crashing/killing the daemons. Anyway, the conclusion is that there is a fully working version of Samba included with the app. It's the app itself that is incompatible with JB. The app is a wrapper that receives events so that it can start smbd and nmbd when the network is up, and kill the daemons upon user request or when the network goes down.

So what I ended doing was:

1. Install and configure Samba Filesharing. This properly configures samba-rc and smb.conf.

2. Perform adb pull /data/data/com.funkyfresh.samba/files. Then update samba-rc by adding a single line.

3. Uninstall Samba Filesharing. This gets rid of the app itself so that it does not interfere with the daemons.

4. Manually create /data/data/com.funkyfresh.samba/files via adb shell.

5. Zip up the files and upload via adb push. The zipping is necessary because adb push can only handle individual files. Then adb shell and unzip.

6. Perform chmod 0777 samba-rc smbd nmbd.

Then I try to manually execute sh ./samba-rc restart. This started the smbd and nmbd daemons and I was able to connect to the shares from another machine.

Now this left the problem of running the script when the machine starts up, after the network interface is brought up. The simplest way I found was to use Script Manager. There are probably other ways (eg. via DHCP hooks), but I am lazy and went with the simplest method that worked.

I am sure Samba Filesharing will eventually be updated to support JB fully. There is a very active thread here on xda-developers for this purpose. But in the mean time, if Samba Filesharing does not work directly on your device yet, I hope my experience here is of some help to get it working on yours.
Read More
Posted in android | No comments

Sunday, December 2, 2012

Using Google Dashboard to manage your Android device backup

Posted on 5:23 AM by Unknown
I used to use AppBrain/Fast Web Install to keep track of which apps I have installed on my phone, and to make it easier to reinstall those apps when the phone gets wiped or replaced. But AppBrain had been going down the tubes, and Fast Web Install had always been a hit-and-miss affair.

Android's own "backup to the cloud" system had previously been even more unusable. There isn't a place where you can see what has been backed up. And when you setup a new phone with your Google account, you just have to wait and pray that your favorite apps will be restored to the phone. Typically all the stars have to be aligned just right for this to happen. More often than not, after waiting for an hour or so and nothing happens, you just curse under your breath and proceed to install your favorites apps manually via the Play Store.

But I just looked again recently and was pleasantly surprised that things are much more civilized now. Firstly there is a place now where you can look at all the apps that are backed up. It's called the Google Dashboard. This is where you can find out almost all the information Google stores on your behalf across its wide range of services, including Contacts, Calendar, Docs, Gmail, Google+ etc.

If this is the first time you are visiting Google Dashboard, you will be shocked how much Google knows about you. If you are not (and you own an Android smartphone with location history turned on), then you should definitely take a look at "Google Location History" (under "Latitude"). Even my wife doesn't know that much about me!

Anyway, under "Play Store", you should see an "Installed Applications" link.


Click on that link and you will be brought to a page that shows 1) the apps currently installed on your devices 2) all the apps you have ever installed on your devices


You can quite comfortably manage your entire app library from the web browser, including install/update/delete apps. The only thing missing is probably batch install, which I hope will be added later. But if you choose multiple apps for installation, the system is smart enough to install the apps sequentially so as not to max out the device CPU and storage I/O.

Note that this only tackles app backup. App settings will only be backed up if the app explicitly built it into its code. You can check which apps backup their settings to Google's cloud by looking under "Android devices, More data stored about this device".



Not sure why this information is provided on a separate page. It would have been more intuitive if this was integrated into the "Play Store" page IMHO.

Nevertheless, this is a major improvement compared to what we had previously. All the details about the backup on each device are displayed, and managing apps from the page works very robustly from my testing (compared to Fast Web Install). All we need now is batch install function. Google, are you listening?
Read More
Posted in android | No comments

Monday, June 4, 2012

Best Android Apps

Posted on 11:11 AM by Unknown
There are a thousand lists of "top apps" out there.  SO, why write another one?  Because virtually every app list I've seen is full of truly awful apps.   My only conclusion is that syndicated bloggers and so-called "news" sites are "in-bed" with app developers to promote certain apps.

My obscurity in the blogosphere ensures that my app-list will be based on merit.  The apps I am listing here are exclusively apps I enjoy using.

Corey's Top 10 Android Apps
  1. Enhanced Email ($)
  2. Launcher Pro ($)
  3. Dolphin HD 
  4. Weather Bug Elite ($)
  5. Fast Reboot Pro ($)
  6. Advanced Task Killer
  7. Slacker Radio
  8. Tiny Flashlight + LED
  9. WiFi Analyzer
  10. Alarm Clock Plus 

There are a ton of games available on the Android, but many of them are ruined by one of three forms of monetizing the game:  push ads, in-game ads, and in-game item purchase. In the case of the first two, there are a couple of handy apps to help squash these.

To identify games with "push ads", you can use these apps:

  • AirPush Detector
  • TrustGo Ad Detector
  • Lookout Security Premium
To disable ads altogether on rooted phones, you can use the "AdFree" app.  That said, it doesn't disable the advertisement space, it just makes it so the pictures don't show-up.  Which, is mostly what I'm worried about, because I hate those types of distractions.
Read More
Posted in android, software | No comments

Saturday, September 24, 2011

Gingerbread 2.3.6 on Nexus One and Link2SD

Posted on 12:23 AM by Unknown
Just got an OTA update on my Nexus One for Gingerbread 2.3.6. Reboot to install. Oops, what's that? Lost my root. No problem. Reboot into recovery and reinstalled su.zip.

Oops, what's that again? Link2SD gave a mount warning and requested a quick reboot. After the quick reboot, the warning was gone and all linked apps were working well, but I don't relish having to reboot twice every time from now on!

After some mucking around, here's how to fix it. I had to uninstall Link2SD, reinstall it, run and select the filesystem type of the second partition, then reboot. This reinstalls the mount script correctly in the new ROM and everything works fine after that.
Read More
Posted in android, link2sd | No comments

Thursday, September 22, 2011

Freeing up phone storage with Link2SD

Posted on 6:56 AM by Unknown
Another more powerful way of freeing up phone storage is with Link2SD. Using this method requires you to have a rooted phone. If you don't, either root your phone or there isn't really much else you can do.

The idea behind Link2SD is simple. Remember Android is basically a modified version of Linux and the application files resides in /data (where '/' , or the root directory, is your phone storage). When more and more files are created in /data, your phone storage is slowly eaten up and very soon you will see the "Phone storage low" warning.

Link2SD lets you move some of the files in /data to the SD storage but retain a pointer or symbolic link in /data. This is a legitimate filesystem sleight-of-hand that retains the directory structure that Android expects, but with the bulk of the data moved to the SD card.

For example, after moving Angry Bird using Link2SD, the affected files are:

/data/app/com.rovio.angrybirds-1.apk -> /data/sdext2/com.rovio.angrybirds-1.apk
 

/data/data/com.rovio.angrybirds/lib/libangrybirds.so -> /data/sdext2/data/com.rovio.angrybirds/lib/libangrybirds.so
 

/data/dalvik-cache/data@app@com.rovio.angrybirds-1.apk@classes.dex -> /data/sdext2/dalvik-cache/data@app@com.rovio.angrybirds-1.apk@classes.dex

As you can see, the symbolic links point to a special partition on the SD card that is mounted as /data/sdext2.

Installing Link2SD is very simple. Before installing, create a second partition on your SD card. You can use a non-destructive partition manipulation tool such as MiniTool Partition Wizard to create the second partition. Depending on your needs, a partition size of 512MB to 1024MB should be sufficient. You can always increase the partition size later if necessary.

Now find Link2SD on the market and install it. After installation, reboot your phone. This will allow Link2SD to mount the partition. Now you are ready to use Link2SD. Launching Link2SD will bring you to a list of all the applications on your phone:


From there, you can choose which apps to link to the SD card. Apps which are already moved using Froyo's native A2SD method cannot be moved. You need to move them back to phone storage before you can run Link2SD on them.

I find a couple of menu functions rather useful. Under "Filter", you can choose to see only those apps that have not been linked ("Not Linked User"). Sorting that list in decreasing order of "Apk+Dex+Lib Size" using the "Sort" function will give you the top candidates for linking to the SD card (i.e. those apps that are using the most phone storage).

I also like to use Link2SD exclusively, so by using Move2SD Enabler to set the default installation location to "Internal", I don't have to deal with Froyo's A2SD mechanism again. You can also enable the "Auto link" function under Link2SD's "Settings", which will automatically link any newly installed app to the SD card. However, I did not enable this because I like to have more control over which apps I link to the SD card. Also remember that you should not link widgets, input methods, live wallpapers etc. to the SD card.

The limitation with Link2SD is that you cannot link system apps to the SD card. However, the author is working on this and this should be possible in a future release. Also, a future version may allow you to disable A2SD directly without using another app.

In summary, Link2SD is a pretty powerful tool for freeing up phone storage by linking application files to the SD card. You get a nice GUI for linking/unlinking application files, fine-grained control over which files to link (apk, dalvik cache, library files) if you wish, a set-and-forget option to automatically link applications to the SD card. All you need is a rooted phone, a few minutes to create a second partition on your SD card, and a few more minutes to install Link2SD, reboot and do a bit of linking. With minimal effort, you should never have to see the "Phone storage low" warning again.
Read More
Posted in android, link2sd | No comments

Sunday, July 24, 2011

Using "pm setInstallLocation" to free up phone storage

Posted on 8:09 AM by Unknown
If you are running Android 2.2 and above, there is a simple way to free up more phone storage without rooting the device.

First you need to download and install the Android SDK. Now this is not as scary as it sounds. It is actually a pretty standard installer, and it will come it handy later if you plan on doing more hacking on your Android device. The reason for installing the Android SDK is to use a command-line utility in the SDK called "adb".

Next you need to download and install the USB driver for your device. If you using an Android device from one of the major manufacturers, this page should help you locate the driver.

Now select "Settings" on your Android device, then "Applications", then "Development", then make sure "USB debugging" is checked. After you have done that, plug the device into the USB port on your computer and make sure all necessary drivers are properly installed.

Open a command prompt and "cd" to the Android SDK folder. Then type "adb devices":

> cd \android-sdk-windows\platform-tools
> adb devices

You should see your device in the list of attached devices. If not, the USB driver for your device is not properly installed.

Now, issue this command:

> adb shell pm setInstallLocation 2

This lets you move applications that do not have A2SD support to external storage. The usual caveats apply i.e. you should not attempt to move widgets, input methods, live wallpapers etc. to the SD card. And system apps like Google Map etc. cannot be moved. But otherwise, eveything else is game, and you can free up quite a bit of phone storage by moving previously unmovable apps. In addition, every app you install from now on will go automatically to external storage (some of which you may have to manually move back to phone storage).

The nice thing about this method is you can easily revert the changes by issuing:

> adb shell pm setInstallLocation 0

The permissible values are:

0 - auto (default; OS decides where to install)
1 - force internal (forces apps to install on phone storage)
2 - force external (forces apps to install on external storage)

In fact, if your phone is already rooted, there is a free app called Move2SD Enabler in the market that does this in a nice GUI.

The limitation to this approach is that you are constrained by what you can move. Android's native A2SD only move application files, not library and data files, so some phone storage will still be used. However, for most users, this approach should free up enough phone storage with a minimum of fuss and complexity.
Read More
Posted in android | No comments

Thursday, July 21, 2011

How to check "Phone storage" usage?

Posted on 5:34 AM by Unknown
If you are getting the "Phone storage low" warning from your Android device, the easiest way to find out how much phone storage is left and what is taking up all that space is to use DiskUsage.

When you first run it, it will ask if you want to view "App Storage", or "Storage Card". Select "App Storage", and it will scan and display a simple but effective visualization of your phone storage.


The above is a visualization of my Nexus One phone. It shows that I have 196.2MB internal storage, of which 13.6MB is taken up by system data, 140MB is taken up by applications, and I have 42.7MB free. When the free space reaches 10+MB, you will start getting "Phone storage low" warnings.

A click on the second or third columns lets you zoom into further so that you can explore the storage utilization of the various applications:


This shows you the applications that are taking up the most storage. So they should be the first ones to target when trying to increase the amount of free phone storage.
Read More
Posted in android | No comments

Tuesday, July 19, 2011

Why do I get "Phone storage low" warnings on my Android device?

Posted on 2:30 PM by Unknown
On an Android device, there is internal storage and external storage.

Internal storage is non-volatile NAND memory built into the device itself. It is also referred to as "ROM" on some spec sheets. Think of it as the "C:" drive on the PC where the Windows OS is located, and all other applications are installed. As such, not all internal storage is freely available to the user. After accounting for the system files (i.e. Windows OS), only the remainder can be used by applications. This free space is known as "Application storage" or "Phone storage". For example, the Google Nexus One has 512MB internal storage, but only 190MB phone storage.

External storage is the microSD card that you plug into the device. This can be as large as 32GB on most devices.

The "Phone storage low" warning occurs because earlier Android devices typically come with very low internal memory (192MB~512MB). Every application (and the data it creates) goes into phone storage and very soon it gets filled up, even though the external storage is practically untouched.

From Android 2.2 (Froyo), an application can write to a new API (A2SD) to let the OS move parts of it to external storage. However only parts of the application is moved, leaving substantial portions of it (libraries, data, cache) in phone storage. So over time, phone storage still gets clogged up.

The Apple iPhone decidedly does not have this problem because it comes with large internal storage (and does not support external memory cards anyway). With the latest Android devices (eg. Nexus S), Google seems to be moving in this direction as well. With 8 or 16GB of internal storage, phone storage low warnings should be a thing of the past.

For older devices, there are a few workarounds which I will explore in later posts. They range from the simplest (running a simple command) to the most difficult (flashing a custom ROM). Alas, from a user's point of view, these workarounds do not help achieve the holy grail, which is fully automatic and transparent storage management. But they will have to do for those of us struggling with low phone storage.
Read More
Posted in android | No comments

Friday, September 17, 2010

Native USB tether for Android Phones!

Posted on 12:55 PM by Unknown
I've been a Linux nerd for many years, and today I discovered one of the most amazing hacks I have ever seen.  By "hack", I do not mean something cobbled together in a haphazzard fashion, but rather and impressive feat of skill.  This particular hack, by Shannon Van Wagner, allows you to natively tether your android phone in Ubuntu!  This is remarkable because of the diversity of pieces that had to be put together to accomplish the feat.

I am willing to bet that while some other hacks I've seen may have been more difficult, none required a broader base of knowledge, and as such this one takes the cake in my Ultimate Hack list.  I emailed Shannon to see if I could give him a tangible reward for his hard work.
Read More
Posted in android, geekery | No comments
Older Posts Home
Subscribe to: Posts (Atom)

Popular Posts

  • 110GB+ worth of photos/videos on a microSD memory card #2
    In my previous post, I talked about wanting to write a script to see how far I can squeeze 110GB worth of media (photos and videos). I wrote...
  • Looking for the perfect car MP3 player/FM transmitter
    I have bought quite a number of car MP3 player/FM transmitters from DealExtreme and other similar websites. A car MP3 player/FM transmitter...
  • Children - The ultimate test in anger management
    Having just spent two full holiday weeks with my kids, it occurred to me this morning that raising young children is the ultimate test in an...
  • Coding the Liturgical Calendar
    For a long time, I've wanted to integrate the Roman Breviary into a couple of projects (nothing public) but have never been able to find...
  • Ubuntu: WebDAV + DAVfs2 + FUSE == Thunar Goodness
    One of the corner-stones of any *nix utility is that it should do a simple job and do it well. Every piece of software that I can think of ...
  • Fast Diet - Hunger Pangs
    When I am doing the Fast Diet , I frequently experience long periods of calm after a brief period of hunger pangs. It is as if the body has ...
  • ...and this is why I'm Catholic
    When I was looking for answers from the Methodist church about all the things I was wondering about as a teenager, I was dismayed to find t...
  • Fast Diet - Incredible Body Hack
    In terms of body hacks, the Fast Diet probably ranks all the way at the top for me. I first read about it in the papers and found the techn...
  • Jamming Flagpoles
    Today I read a report about Iran's alleged "flagpole jamming network".  Reading all of this, it became plainly obvious that, ...
  • Whacked-out Weather
    So, its no mystery to anyone that the weather has been WEIRD this year, but here's just how weird it has been... this evening, on my way...

Categories

  • a2dp
  • administrata
  • android
  • antivirus
  • avi
  • bluetooth
  • chrome
  • coding
  • culture
  • dos
  • eee
  • faith
  • family
  • fastdiet
  • firefox
  • gadgets
  • geeekry
  • geekery
  • hardware
  • homeschooling
  • howto
  • java
  • laptop
  • life and the universe
  • linguistics
  • link2sd
  • linux
  • migration
  • mp4
  • pdf
  • politics
  • printer
  • roomba
  • security
  • soapbox
  • software
  • transcode
  • travel
  • ubuntu
  • video
  • virtualization
  • webapps
  • windows

Blog Archive

  • ▼  2013 (11)
    • ▼  August (3)
      • 110GB+ worth of photos/videos on a microSD memory ...
      • 110GB+ worth of photos/videos on a microSD memory ...
      • Coding the Liturgical Calendar
    • ►  July (6)
    • ►  June (2)
  • ►  2012 (25)
    • ►  December (2)
    • ►  November (4)
    • ►  October (4)
    • ►  September (1)
    • ►  June (11)
    • ►  May (3)
  • ►  2011 (11)
    • ►  December (1)
    • ►  September (2)
    • ►  August (1)
    • ►  July (3)
    • ►  April (1)
    • ►  March (1)
    • ►  February (1)
    • ►  January (1)
  • ►  2010 (10)
    • ►  December (2)
    • ►  October (1)
    • ►  September (1)
    • ►  August (2)
    • ►  July (1)
    • ►  May (1)
    • ►  March (1)
    • ►  February (1)
  • ►  2009 (29)
    • ►  December (2)
    • ►  November (2)
    • ►  September (1)
    • ►  August (3)
    • ►  July (2)
    • ►  June (5)
    • ►  May (2)
    • ►  April (2)
    • ►  March (6)
    • ►  February (3)
    • ►  January (1)
  • ►  2008 (57)
    • ►  November (2)
    • ►  October (4)
    • ►  September (1)
    • ►  July (8)
    • ►  June (3)
    • ►  May (8)
    • ►  April (12)
    • ►  March (6)
    • ►  February (8)
    • ►  January (5)
Powered by Blogger.

About Me

Unknown
View my complete profile