Oct 20, 2013

Properly eject Android device after using ADB

Android uses ADB to communicate with physical devices and emulators. To properly disconnect your phone first stop the ADB server and then eject your device.

adb kill-server

Source: http://stackoverflow.com/questions/16089037/unable-to-eject-android-phone

Oct 19, 2013

Making Android apps System apps

Used Link2SD to to that.
However some apps with libraries will fail unless the libraries are copied to /system/lib, e.g. libchromeview.so for Chrome. Easy to move from the APK files, or from the user apps before they are changed to system, located at /data/data/apps.

TouchPal language pack download

For some reason TouchPal X just failed to download the language packs.
I've used "Shark for root" to trace that it was downloading it from

http://ime.service.cootek.com/international/language/v5452/default/RussianPack.apk

but something must have been going wrong. Simply downloaded on my PC and installed on the phone.

Edit: this was likely due to /mnt/sdcard permissions/ownership incorrectly set in Link2SD mounting.

Link2SD using Internal SD card space

Requires rooted phone.

/system/etc/install-recovery.sh file created by Link2SD using external SD card with 2 FAT32 primary partitions:

#!/system/bin/sh
#added by link2sd
LOG=/data/link2sd-install-recovery.log
echo "$(date) mounting..." > $LOG
mount -t vfat -o rw,uid=1000,gid=1000,umask=133,dmask=0002 /dev/block/vold/179:34 /data/sdext2 1>>$LOG 2>>$LOG

mount -t vfat -o rw,uid=1000,gid=1000,umask=133,dmask=0002 /dev/block/mmcblk1p2 /data/sdext2 1>>$LOG 2>>$LOG

mount >> $LOG
echo "$(date) mount finished" >> $LOG 

modifed file:


#!/system/bin/sh
#added by link2sd
LOG=/data/link2sd-install-recovery.log
echo "$(date) mounting..." > $LOG

mount -t vfat -o rw,uid=1000,gid=1015,umask=133,dmask=0002 /dev/block/mmcblk0p19 /data/sdext2 1>>$LOG 2>>$LOG

mount >> $LOG
echo "$(date) mount finished" >> $LOG 

The GID of 1015 is sdcard_rw, read/write group id. Otherwise 1000:system would not allow normal apps to write to /mnt/sdcard, which is also mounting the same partition - for some reason this affects its permissions/ownership also.

Note that with SD card being FAT32, it by itself does not store any permissions and ownership - the mounting point determines those.

If creating this file manually, /data/sdext2 folder must be created too, with RWE-R E-R E permissions, Owner ROOT and Group ROOT.

Taken from http://www.modaco.com/topic/356349-using-link2sd-to-use-internal-sd-as-extsd/

UPDATE: The permissions are still somehow being applied, specifically to /mtn/sdcard/Android/data/ program folders, without giving them write access. Didn't bother trying other things - just created a ext4 partition on the external SD card.

android internal SD card format

I've formatted the internal SD card on Windows computer. After that the phone (Android 4.0.3 ICS) did not recognize it. The phone is rooted and doing format from the shell (adb shell, while connected in CWM recovery mode) solved the problem:

busybox mkfs.vfat /dev/block/mmcblk0p19

Need to know the exact partition though - in my case mmcblk0p19. Then the /emmc mounted successfully.

Oct 3, 2013

Screen presentation tools

Wink - small great screen presentation creation tool - http://www.debugmode.com/wink/

Need to check out the http://www.screenr.com/