Android - (Advanced ?) Usage of my smartphone

HALP! No GPS

Situation :

Albeit I'm standing under a clear blue sky, on a flat land (no trees, no skyscrapers, not in a cave, not at home, not even in my car), none of my apps using the GPS signal can detect my current position. Even after waiting up to half an hour

Details :

Could that be related to flashing a new ROM or to my recent experiments ?
After some googling, it seems that this is unrelated. For further details on where the bug lies, I've tried GPS Test. In my case, this highlighted the fact that my phone could receive GPS signals (In view n), but could use none of them (In use 0).

Solution :

Further googling led me to the final (stupid!) solution : turn off, remove SIM card, place it back, turn on. And voilà !

HALP! Can't boot anymore after editing /system/build.prop

Situation :

At boot, I can see the Samsung logo, then nothing more : a black screen

Details :

I discovered this afterwards : there was a typo in my /system/build.prop. One of the Vol --... combination I made to scroll/search/... actually added some text into the file

Solution :

Don't be stupid : wiping data or using "factory reset" as offered by the recovery menus will just make things harder after you'll have finally fixed the real issue : it would be like tampering with /home while trying to fix Grub. These have no effect on the current problem, leave YOUR data as-is

There are several ways to handle this :

Install Android tools on Debian 7 (source) :

Things have evolved and installation steps below are now obsolete. Please read the up-to-date procedure to install ADB on Debian 8.
Create a new udev rule :
  1. plug the phone via USB, then lsusb, which outputs : Bus 002 Device 034: ID 04e8:6860 Samsung Electronics Co., Ltd GT-I9100 Phone [Galaxy S II], GT-P7500 [Galaxy Tab 10.1]
  2. Add into /etc/udev/rules.d/99-android.rules :
    SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", MODE="0666", OWNER="bob"
    Don't forget to replace idVendor and OWNER with local values : output of lsusb and current shell user.
  3. Then restart udevd : service udev restart
Backport packages from Debian sid to Debian Wheezy :
  1. mkdir android; cd android
  2. apt-get install build-essential
  3. echo "deb-src http://debian.ens-cachan.fr/ftp/debian/ sid main contrib non-free" > /etc/apt/sources.list.d/sid-sources.list
  4. apt-get update
  5. apt-get build-dep android-tools
  6. apt-get source --build android-tools
  7. rm /etc/apt/sources.list.d/sid-sources.list
  8. dpkg -i android-tools-*.deb

Here starts the fun : time to fix things...

What worked for me :

  1. [on the phone] boot in recovery mode
  2. [on the phone] with the recovery mode tools, mount /system
  3. [on the computer] open an adb shell session
  4. [on the computer] restore your backup copy of /system/build.prop
  5. reboot, enjoy : you just saved your smartphone
RANDOM NOTES FOR FURTHER REFERENCE :

adb sideload cm-10.1.3-i9100.zip
	error: closed

==> not much success 

adb usb
adb push cm-10.1.3-i9100.zip /sdcard/
adb kill-server;adb start-server

==> not much success 
=================================
adb kill-server;adb start-server
adb shell

if "error: device not found", unplug/replug USB
on phone, from recovery console, mount /system
once in "adb shell", restore backup of /system/build.prop, reboot

==> WORKED 

/system/build.prop ro.ril parameters

Parameter Values
ro.ril.enable.a53 Enable increased ciphering on HSDPA/HSUPA, for increased security, but decrease in performance (source)
  • 0 : off
  • 1 : on
supposedly related to GSM security, no actual info (may not even exist)(source)
ro.ril.enable.dtm Dual transfer mode (simultaneous voice and data, only relevant for EDGE connections, likely always enabled for devices built after 2010) (source)
ro.ril.gprsclass
  • 10 : Will significantly save battery, unless you use EDGE/GPRS instead on 3G)
  • 12 : Default for most modern phones, check your phone
ro.ril.hep unknown and undefined (source)
ro.ril.hsdpa.category HSDPA is a 3G mobile telephony protocol (from the HSPA family) dedicated to downlinks. The speed category that can be used over this link is hardware-dependent (check your phone specs). View data speeds table.
What is HSDPA in Samsung smartphones?
ro.ril.hsupa.category HSUPA is similar to hsdpa, but for uplinks. View data speeds table.
ro.ril.hsxpa
  • 0 : UMTS (r99 ?)
  • 1 : HSDPA only (or HSDPA + UMTS ?)
  • 2 : HSDPA + HSUPA
  • 5 : No significant information has been found but it make the switch between WiFi and HSxPA nearly instantaneous (works like 2 but better)
(source)

The following list is from the CyanogenMod forum, and is there "for future use". I've not investigated these parameters so far.

There are many ro.ril parameters which I found from /system/lib/libhtc_ril.so:
ro.ril.a52.%s (gprs encryption algorithm)
ro.ril.a53.%s (gprs encryption algorithm)
ro.ril.ecc.%s (emergency call codes)
ro.ril.def.agps.mode.%s (network assisted gps)
ro.ril.def.agps.feature.%s (network assisted gps)
ro.ril.def.agps.mode (network assisted gps)
ro.ril.def.agps.feature (network assisted gps)
ro.ril.oem.ecclist (emergency call codes)
ro.ril.oem.nosim.ecclist (emergency call codes)


ro.ril.enable.nitz (network informed time zone)
ro.ril.enable.network_identify


qos (quality of service)

ro.ril.qos.maxpdps
ro.ril.qos.traffic.class
ro.ril.qos.max.ul
ro.ril.qos.max.dl
ro.ril.qos.guarantee.ul
ro.ril.qos.guarantee.dl
ro.ril.qos.delivery.order
ro.ril.qos.max.sdu
ro.ril.qos.delivery.err.sdu
ro.ril.qos.transfer.delay
ro.ril.qos.traffic.priority


ro.ril.always.laccid
ro.ril.fast.dormancy.rule
ro.ril.fd.scron.timeout
ro.ril.fd.scroff.timeout
ro.ril.fast.dormancy.plmn
ro.ril.enable.3g.prefix (=1 shows "3g" on lock screen next to network name, =0 does not)
ro.ril.3g.long.name
ro.ril.htcmaskw1.bitmask
ro.ril.htcmaskw1
ro.ril.enable.homezone
ro.ril.enable.vt
ro.ril.enable.regucid
ro.ril.enable.hsdpaind (perhaps ind stands for indicator?)
ro.ril.enable.a52
ro.ril.enable.a53
ro.ril.enable.dcm.feature
ro.ril.enhance.htcdis
ro.ril.enable.tim.feature
ro.ril.enable.korea.stk (Korean Sim Tool Kit)
ro.ril.enable.hsupaind (perhaps ind stands for indicator?)
ro.ril.enable.gea3 (gsm security algorithm)
ro.ril.enable.managed.roaming
ro.ril.enable.enhance.search
ro.ril.disable.mcc.filter
ro.ril.search.first.pnn
ro.ril.enable.ncell.ind (neighboring cell)
ro.ril.enable.enhance.nws
ro.ril.radio.svn
ro.ril.wp.feature
ro.ril.emc.mode
ro.ril.ucsq.mode
ro.ril.disable.power.collapse (said to be an ultra-low power state when phone is in idle, saving battery)
	1 : "yes, please disable the power collapse mode"
	0 : "oh, please leave power collapse mode on"

ro.ril.enable.cnap (Caller Name Presentation)

  • I've just tried this hack on a Samsung Galaxy S2 (GT-I9100) running CyanogenMod 10.1.3. The phone rebooted normally. Now, I just need some time to experiment changes, if any...
  • Some values shown here may NOT apply to other devices
  • Make sure values are only defined once. Edit existing values if they exist.
  • Make backups !!!
  • Use at your own risk

To do so, we'll append a set of new/improved settings into the /system/build.prop file :

ro.ril.gprsclass=12
ro.ril.hsdpa.category=14
ro.ril.hsupa.category=6
ro.ril.hsxpa=5
  1. [on the phone] open a shell with root permissions (via SSH connection, or with Terminal Emulator + su + allow)
  2. [on the phone] remount /system in read/write mode : mount -o rw,remount /system
  3. [on the phone] chmod 777 /system/build.prop
  4. [on the phone] start SSH server
  5. [on the computer] scp -P port root@localIpAddress:/system/build.prop .
  6. [on the computer] edit locally
  7. [on the computer] scp -P port build.prop root@localIpAddress:/system
  8. [on the phone] chmod 600 /system/build.prop
  9. [on the phone] reboot, enjoy !

Be VERY careful while editing the file : during my tests, to go quicker than copying the file back and forth via SSH, I edited it with Nano directly on the phone (Vim is also available). These editors use key combinations to work, which are not convenient at all on a smartphone : if you make a typo, you may screw your phone up

How to remove entries from the call log ?

Flush the whole call log :

  1. Open the call log
  2. Click the lower-left menu button, then Delete all calls

Remove only some specific entries from the call log :

  1. Open the call log
  2. Click the entry you wish to remove. This opens a new page for this entry
  3. Click the lower-left menu button, then Remove this call from log

This information applies to CyanogenMod 10.1.3 and Android 4.2.2. Things could be different on other versions.

How to clean the My Applications list ?

The My apps list (available once logged at https://play.google.com/apps) displays all your apps. All the applications you've ever installed (even though you changed your phone, uninstalled them ,...).
To clean this list (bad news, it seems it can be done only from your phone, one app at a time) :
  1. on your phone, open the Play Store application
  2. select My Applications, then All
  3. you'll get the full list of any application you ever installed
  4. for each (uninstalled) application you wish to remove from the list, click on the X in the upper-right corner
  5. repeat until the list is clean

How to install extra dictionaries for word correction ?

  1. Browse the menus until the parameters of the Clavier Android (AOSP) (See related procedure)
  2. in CORRECTION DU TEXTE section : Dictionnaires complémentaires
  3. Select and install the required dictionaries

How to enable an extra (english) keyboard in addition to the default (french) one ?

  1. Paramètres
  2. in PERSONNEL section : Langues et saisie
  3. in CLAVIER ET MODES DE SAISIE section, in front of Clavier Android (AOSP) : Parameters
  4. Langues de saisie
  5. in CLAVIER ANDROID (AOSP) section : Untick Utiliser la langue du système
  6. in MODES DE SAISIE ACTIFS section : select the required language(s)

Can't enter recovery mode : stuck at rotating CyanogenMod blue logo

Situation :

After trying to flash a new CyanogenMod ROM, my phone (Samsung Galaxy S2) hangs at the rotating CyanogenMod blue logo. The key combination to enter recovery mode doesn't work

Details :

Forgot the "factory reset" / "Wipe cache data" / ... ???

Solution :

  1. Power off the phone
  2. Press and hold + and Home
  3. Press and hold Power
  4. Wait for (factory default) Galaxy S GT-I9000 boot display to show up
  5. Release Power before the second boot display with CyanogenMod shows up. Keep holding + and Home.
  6. Wait for recovery mode to start. After you see the recovery menu, you can release + and Home.

Samsung Galaxy s2 (GT-i9100) and Android / CyanogenMod tips :

Key combinations :

  • + : Volume up
  • - : Volume down
  • Home : below the screen
  • Power : ... well, the power button
Usage Keys
Enter download mode --Home-Power
Enter recovery mode +-Home-Power
Make a screenshot
  • Samsung Android : Home-Power
  • CyanogenMod 10.1.3 : Hold --Power for 1 second

How to disable the keyboard haptic feedback system-wide ?

Paramètres | Langues et saisie | Settings icon next to Clavier Android (AOSP) | Untick Vibrer à chaque touche

random unsorted notes :

ENABLE DEVELOPER MODE :
http://root.suumitsu.eu/links/?ogMsXw
- Paramètres
- À propos du téléphone
- (descendre tout en bas: "numéro de build")
- appuyer 7 fois sur "numéro de build" : un message indiquera que le mode développeur est activé

GET GOOGLE APPS
http://wiki.cyanogenmod.org/w/Google_Apps
Download package matching CM version (10.1.3 here)
Copy it to SGS2 via USB
Enable developer mode
Enable "Advanced reboot"
Reboot in "Recovery mode"
Install from internal SDCard
Reboot


GET A NEW ROM
	https://download.cyanogenmod.org/?device=i9100
	http://www.clockworkmod.com/rommanager/developers/galaxys2?name=Samsung%20Galaxy%20S2


FLASH A NEW ROM
http://androidforums.com/metropcs-cdma-galaxy-s3-all-things-root/681867-stuck-cyanogenmod-animation.html#post_message_5478896

Stay calm. Something similar happened to me.

List of things you will need:
1. Rooted Phone
2. Clockwork Mod (http://www.clockworkmod.com/rommanager) or other custom recovery tool.
3. A computer
4. A USB cable
5. CyanogenMod ROM or alternatively community ROM.

Step 1: Boot into recovery by pressing the power button, volume UP and home button at the same time.
Step 2: Go to "Mounts and Storage". Select either "mount /sdcard" or "mount /external_sd".
Step 3: Connect your phone to your computer and copy your ROM to the internal or external storage.
Step 4: Wipe cache/data and factory reset.
Step 5: Flash your custom ROM by pressing Apply sdcard update.zip. Alternatively you can select the directory the ROM is located in.
Step 6: ????
Step 7: Reboot
Step 8: PROFIT!!


Easter egg :
Paramètres | A propos du téléphone | Version CyanogenMod (appuyer plusieurs fois) | SURPRISE !