Rooting Nexus 7 under linux (F16)

Quick notes on rooting Nexus 7 (I’ll make a real guide out of it later):

  • Had to update Android SDK to have API v15 (not sure how relevant this is, now that I know what needs to be done)
  • I followed XDA-Developers, turns out fastboot is a separate tool that I fetched from Cyanogen folk which really pointed to some obscure archive.
  • Fastboot needs to be ran as root (not a “normal user”)
  • I also ran into “adb: no permissions” issue nicely covered in pts.blog which works just as good on F16. In summary – you need updated UDEV rules for android devices… except now my Android devices are available to any user to tinker with… gotta fix that later…
  • I ended up using CWM 6.0.06 ( cwm6006touch_INSTALL.zip ). Don’t forget to unzip image before feeding it to fastboot.

 

So, CM7 it is! (My “almost” pure OSS android)

After some struggling and readjustment I have finally embraced CM7 as my main OS giving up on Edge* games (too fast :-S). I have found quite a few replacements for missing apps, camera is fully functional, and my phone is filled with OSS goodness from OS up thanks to Cyanogen and FDroid crowds.

  • I have started off with Unofficial Nightlies
  • Then I built my own
  • Then I’ve added user apps:
    • Added Alarm Klock as my alarm clock
      • Downloaded alarm-specific music instead of default rings
    • “Stopwatch” + “StopWatch & Timer”
    • Vanilla Music
    • Zirco browser

For now it’s nightlies for me until final 7.2 comes out.

Working towards using CM7/CM9 on SGS2

Considering my last mis-adventure with CM7 I figured it’s time to take proactive steps. Either take an app that has “close” functionality and tweak it, or just get used to it.

What I’m going to do is pile some resources to use as a launchpad… here we go:

2012-03-16

Got a bootloop today trying out GingerMod ugh…Flashed 0.8 fine… found that things were missing largely (it’s even more spartan then CM7 IMO), bumped to 0.8.5 – and kaboom! Thank $DIETY for CWM (DIETY=chainfire?)! Restored back without having to resort to “[READ THIS] Got a Boot Loop? Don’t post a New Thread!

CM7 is still a no-go due to massive deficiencies in the categories I do care about (Camera being one of them). I really want to get CM7 to work though…

 

CM7 on SGS2

My SGS2 decided to test my patience and alertness all at the same time – 2 days ago it decided to “lose” some of the data on the internal storage (WTF?) followed by wiping contents of SD card. That has happened just as I was trying to download some files *from* the device, and upload some back. I have received messages about I/O errors etc which were not very promising.

Now, I’ve been using Cognition-1.5.1 for quite some time now (which is stock ROM with some tweaks really) however in my situation I was looking for more control over the device and desire to run fsck against internal storage etc. Considering I’ve lost most of my data (by a lucky stike of luck I did have a backup that is 2 weeks old) I decided to bite the bulet and go for Cyanogen. Long research and questioning of my motives resulted in CM7 being installed on my SGS2.

Things I liked

  • WiFi drivers: I’ve got solid WiFi performance with CM7 unlike stock ROM I speeds were amaizing
  • Number of tweaks and presence of “profiles”
  • UI is nice and clean. Looks like ADWLauncher settings are better polished than what I have in Cognition…
  • very spartan ROM. Bare minimum to get by, as it should be, except…

Things I miss/didn’t like

immediately after I’ve booted into CM7 I have noticed that I’m attached to certain things:

  • Clock: I really use that Samsung stock clock to it’s fullest – Alarm, Timer, Stopwatch, etc. CM7 stock clock pales in comparison… pitty
  • Video playback: I had to show movies to some people that day and all “recommended” players from Market would stutter after a minute or two of playback which was embarasing…
    • I couldn’t find the list of supported formats/codecs for CM7 to convert to that my videos… ugh…
  • Default system font change – I’m too used to my current font in Cognition and would like to keep it
  • SMS application looked rather “dull”. Not sure if it’s not just a different interface but it felt like it was missing features
  • It CRASHED on me while using Market… saw something in MIUI forums about insufficient disk space for larger applications – maybe that’s the cause?

Things I should try/may be able to fix

  • clock: Lightning Bug, Alarm Droid could probably replace Stock Alarm clock… haven’t found the rest yet
  • sounds like some Video players can switch between HW/SW decoding so switching to SW decode may help my problem with stuttering. May also try different format/codec combination
  • MIUI is a custom ROM atop of CM it sounds
  • CM9 may be able to bring some goodness as well
  • AOSP-based ROMS
  • INDEX – Galaxy S II Original Android Development [ 5 March ]

 Where I’m at

At the moment I have returned to Congition-1.5.1 (sigh..) I am looking at CM9 now, except it’s an “alpha” and hoping that imminent release of ICS for SGS2 by Samsung will yield source code dump which may speed up CM9 development (or not).

Customizing Samsung Galaxy S II (I9100) under Linux (pt. 2)

After some time with LiteningROM I did notice that my idle (stand-by) battery use decreased (good thing) – allowing me to get 2d of moderate use out of the phone. However I did notice that LiteningROM was memory hungry and it also looked like any interactivity caused immense power drain in the system.

Today I re-flashed with new Cognition 1.0.8

First observation: memory footprint does seem to be smaller (I couldn’t get “used RAM” under 400M with LiteningROM and with new CognitionROM I get into sub-300M zone. nice)

Now, I wait and see whether power consumption goes down to the levels of LiteningROM or below and then decide which one I’m going to stick with until CyanogenROM produces stable image for SGS2.

SpeakOut, Rogers and my beautiful SGS2

Looks like Data usage on SpeakOut may be an issue (or may be not..). I started gathering some info on configuring appropriate APN.

Picked up some wisdom from howardforums :

Name: Rogers
APN: goam.com
Proxy: <not set>
Port: <not set>
Username: wapuser1
Password: wap
Server: <not set>
MMSC: <not set>
MMS proxy: <not set>
MMS port: <not set>
MCC: 302
MNC: 720
Authentication type: None
APN type: <not set>

and it looks like that would limit use down to Mozilla and other browsers that have proxy settings.

# Run Fennec, and in address bar type: about:config. This will take you to the advanced configuration panel.
# Now you need to find proxy entries, to simplify that you can filter it out by taping proxy in the field below address bar.
# Modify network.proxy.http and network.proxy.http_port to your proxy server and port. (Proxy 10.128.1.69, Port 80)
# You can also modify network.proxy.ssl and network.proxy.ssl_port to be able to access https addresses. (Proxy 10.128.1.69, Port 9203)
# Set network.proxy.type value to 1.

So fun is not over just yet…. It also looks like above IP is the same IP that pops from default Rogers APN when you reset device. I’ll have to get “browsing” activated to tinker with it a bit more…

Wireless shenanigans with android (on SGS2)

While I was busy beating the dust out of my new SGS2 and tinkering with ROM’s, I came across quite a few “hidden features” that were not known to me.

*#*#4636#*#*

above will give you “test mode” in which you can run things like “ping test” etc. Nice for testing your data connection without actually connecting anywhere 🙂

*#9900#

that looks like debugging screen in which you can manipulate logs etc. for reporting, and “Disable dormancy” for better battery life.

*#1234#

above will produce phone information – very handy for reporting and looking up issues etc.

 

Customizing Samsung Galaxy S II (I9100) under Linux

I’ve got SGS2 and it’s damn cool. But that’s not enough. I really have to pimp it up/down to arrive at a device that I can call mine. Looks like Cyanogen mod that claims to be fully open source will be my goal.

So this is where I’m going to keep track of my progress and document the procedure.

Some links and tools to start:

To get phone info needed for proper images etc. you’d have to dial:

*#1234#

in “phone” app.

Follow [ROM + Guide]Official i9100 KE7/KE8/KF1/KF3/KF4/KF2/KF3 download and Root Guide and get your stock ROM and Kernel if you’re as paranoid as me.

Now the rooting…

  • Get the CF-Root. I used CF-Root-SGS2_XW_XEU_KE7-v4.0-CWM4
  • extract zip, extract tar inside and get zImage file
  • Shut down the phone
  • Make sure USB is not plugged in
  • boot phone in download mode ( “Vol down”+”HOME”+”Power”)
  • plug USB back in
  • In Heimdall use above zImage to flash it over to SGS2
  • phone reboots
  • on boot you’re presented with ugly yellow warning sign – click “Vol down” to bypass it

Immediate actions:

  1. Backup!
    1. boot device into “Recovery mode”: “Vol up” + “Home” + “Power”
    2. follow the menu

Fix-ups:

Disable Fast Dormancy:

  1. Dial

    *#9900#

  2. Press Disable Fast Dormancy
  3. Press Exit

VillainROM

VillainROM is available for SGS2 now so I had to try it. Now that I was comfortable with Heimdall operations following VillainROM Flashing Instructions was really straight-forward:

  • CF-Root – I’ve got that already
  • upload VillainROM .zip file to phone’s SD card
  • disonnect the phone from PC
  • shut down the phone
  • boot into recovery mode (“Vol up”+”Home”+”Power”)
  • from ClockWorkMod launch backup
  • once backup is done – “wipe data/factory reset” and “wipe cache” (I suspect that’s the step that killed ALL data on the phone, including photos etc.)
  • “Install zip from SD” – locate VillainROM .zip file on SD and proceed
  • reboot phone into VillainROM (takes a while on first boot)
  • from booted VillainROM – install VRTweaks
  • Launch VRTweaks (it requires internet connection)
  • from VRTweaks install “Symlink fix”
  • reboot
  • mount freshly rebooted phone from PC
  • copy CF-Root .zip to the phone
  • launch CWM
  • from CWM flash kernel using CF-Root .zip file from above
  • reboot (automatic)
  • download MODEM file
  • reboot into “Download mode” (“Vol Down”+”Home”+”Power”)
  • flash modem file onto the phone
  • reboot (automatic)

Now that VillainROM is there: backup! Launch CWM app and initiate backup from there – you can give backup custom name from here vs “Recovery mode” where it’s predefined timestamp.

I got fed up with “Yellow Warning sign” on boot so I followed the steps to get rid of it:

  • find out which stock kernel is your phone running
  • download stock ROM and MODEM
  • extract Stock ROM (first .zip then .tar – you’ll end up with bunch of .img files and zImage – you will need zImage)
  • make sure your VRTweaks installed
  • from VRTweaks run SymlinkFix and reboot into Download Mode (“Vol Down”+”Home”+”Power”)
  • in Download Mode flash above extracted kernel with Heimdall
  • reboot
  • extract CF-Root .zip/.tar file until you get to zImage
  • upload CF-Root’s zImage to the phone
  • from CWM app flash CF-Root zImage

Now it’s a good time for another backup – we’re so far ahead – it would be a shame to lose things now.

After all that I had VillainROM running on my phone. VillainROM however turned out to be not as funky as I hoped it will be. Issues I have discovered:

  • for some strange reason it wakes up camera on certain operations (which stock ROM doesn’t do)
  • there is no Russian Keyboard layout
  • browser doesn’t respond to pinch-zoom actions and “hangs” in some odd state

Constant clicking from the camera made me re-think my strategy and I decided to fall back to Stock Firmware (and discover that on-board data files are gone, d’oh! It’s not an issue if I had backed it up onto PC, which I didn’t)

Cognition S2

Now that I’ve gone through all the trouble above flashing new images is a piece of cake. Download ROM and flash it via ClockWorkMod’s Recovery Mode:

  • download ROM
  • copy it over to the phone
  • reboot phone into Recovery Mode (“Vol Up”+”Home”+”Power”)
  • select “install zip from sdcard”
  • locate .zip
  • flash

note that as a result CWM Recovery Mode version has been bumped (to 4.0.0.5) and volume keys are used for moving around and “Power” is used for selection vs 4.0.0.2’s “Home”.

Cognition looked OK, but statusbar icons were constantly changing colors, some of the original Widgets on Samsung that I’ve got used to are gone.

LiteningROM 1.5

For flashing this with Heimdall you need to extract the .RAR, then extract the tar.md5 (it’s just a tar), then use resulting

  • factoryfs.img
  • modem.bin
  • zImage

and plug them into appropriate fields in Heimdall. Looks like supplied kernel brought back Yellow Warning Sign.

After flashing phone did make that clicking sound it made with VillainROM but only on boot so I can possibly live with that.