There is important difference though, you have to completely remove the ga(‘send’, ‘pageview’); line from GA’s code.

Step 2: Catch event on your main controller

Now in your main controller, you need to add a listener which fires when new content is loaded into the data-ng-view. Inside this listener, we’ll manually trigger Google Analytic’s send pageview function and provide it with the URL.

The important part inside the event listener, is where $window.ga is called.

Optionally, I’ve wrapped it inside a check to make sure not to send page views to GA while the site is running in my development environment. I’ll know it is, because then the absolute URL always contains “localhost”. In your environment it might differ (maybe the URL will contain “C:/” or something else).

Note that this way, I need to publish my site and access it through the live URL for analytics to work. If you want to test in your development environment without publishing, don’t do the step mentioned in the paragraph above.

And it’s that easy. Your Angular.JS application should now work perfectly with the Google Analytics tracking cookie.

Drop a comment if you see room for improvement, or if this code has helped you.

Exactly 1 month from now, July 1st 2012.How did you get interested in building ROMs?

Right since the day I held my first ever Android phone (June 2011), I was amazed at the flexibility & power of Android.I joined XDA around the same period, June, but didn’t really get involved in it until November 2011.When I found out about how much more we can really do with it, I started diving in, for obvious reasons.

What previous experience as a developer did you have before starting to work on Android?Nothing noteworthy. Mostly minor scripting & coding, in HTML, C++.Some more minor work on Symbian S60 v3 (my previous favourite).My development chapter, began on XDA.

Do you develop your ROM’s on your own or in a team?Technically, I handle the ROM on my own, but there’re many, whom I owe, for guiding & helping me out in multiple cases where I needed help.Almost everyone in my XDA friendlist, has been a great ‘team-member’.Officially, I’m not a member of ParanoidAndroid team, but I would like to think of myself as one.

What type of feedback did you get when you made your first ROM?If the ratings are worth, then overwhelmingly Positive.Its always great to see your very first work so highly appreciated.

What do you think makes your ROM so popular?The ParanoidAndroid name, has already made quite a dent in the Development Timeline.People love the concept of PAD (Per-App-Density) & PAL (Per-App-Layout). The flexibility of having every app in its own custom DPI & Layout. (Thanks to molesarecoming & D4rKn3sSyS)

Secondly, I continued the Galaxy S3 port when one of the lead developers – D4rKn3sSyS, had to retire from S3 port, due to all the pain of developing for a device he doesn’t own (Respect for him, he even did that in the first place!).

Thirdly, I keep the ROM updated as per latest CM10 changes & PA changes, be it nightlies or even previews.(Although, in rare cases when the changes are incremental, I choose to skip the release.)

What are the differences between the various versions of your ROM?As of now, we’re running through an alpha stage of JB-PA development, & its going superb, thanks to the CM team & the PA team. Any minor or major fix localized to my SGS3 port, are usually fixed in the subsequent release. Major features or aesthetic changes are done by the PA team, pertaining to the fact that the PA sources are not yet open to public. CM changes & fixes are of course integrated into PA, so any updates or commit changes, automatically get reflected in our future releases.In the last 2-3 releases, we got new options to modify SystemUI (notifications bar, for instance), theme engine support, fixed graphical glitches in Phone/Hybrid-Phablet/Tablet Modes, modded loud audio hacks, & working camera + video camera (with Sound)

Which version of your ROM will you suggest to someone who wants the best battery life on their phone?

Definitely the JellyBean-PA- v1.9.3a. No question of it, JB is a kick-ass increment over ICS when it comes to almost every parameter of comparison, inclusive of battery, speed, smoothness, thermal efficiency, animations etc

What kernel(s) do you recommend to use with your ROM?Stock CM Kernel works out of he box.Its always the choice for any user by default.But for those who love to play around with Kernel features such as OC/UV, CPU/GPU tweaks, Audio enhancements etc, I would totally recommend giving Gokhanmoral’s Siyah Kernel (v1.5 b3, at the time of writing) a try.

What ROMs do you enjoy, aside from your own?CM10.

What is your favourite launcher?

Right since Froyo & GingerBread, GO Launcher.

Since ICS (& now JB), I like both the stock & Nova Launcher, but use Nova on daily basis.

How do you feel about the future of Android?The present definition of Android says it all:“Android is a ‘successful’, ‘open-source’, ‘linux-based’, ‘mobile’ operating system.”Its future’s pretty self-explanatory.

Looking back to the days of Cupcake/donut, & now, in contrast, exposed to the presence of ICS & JB, Android has covered more leagues than ANY OS in history. By some uncredited derivative of Moore’s Law, technology is growing exponentially, & not just in growth, but also in terms of ‘Rate of Growth’.Android, in my opinion, is the past, present & the future. In the very near future, every AI or household device would run on Android, or derivatives. Universal Android controllers are already hypothesized (probably in prototype stage), but soon, its gonna be everywhere, all around us. There’s no limit to what Android can do, or what we can do on/with it.

Are there any other developers or notable people to whom you are especially grateful of?Many, many & many!I am grateful to CM team, for making all of this possible, right since the old Android days, to the PA team (molesarecoming & D4rKn3sSyS), for implementing such a revolutionary idea of Hybrid Modes on Android.I credit all those who helped me along the glitchy times. Daxmax, swapnilraj, & so many others (as listed on my thread) have played a major role.

Are you doing some kind of development as your full time job, or is there something else that you enjoy?I’m a student, & yet to graduate.I develop, coz I love to. I enjoy every second I spend in progressing this amazing OS & community.I love everything technological (gadget based or not), reading & discussing about Space, Particle, Quantum, Relativistic, & Theoretical Physics. Crazy about physics…I love to read. (novels & literature)I am a Music enthusiast, & love to sing, play the piano, guitar, & the flute.

Do you have any other projects readers might be interested in?

Many backbones & frames in mind, but not yet fully devised to present.May be, may be not. Time will tell.

Have you had any experiences with other platforms like Windows Mobile or iOS, and how do you think development of Android in the future compares to those platforms?

I had previous minor previous experience with Symbian S60 v3.The comparison… is laughable, & uncanny. Symbian is nigh dead.At its time, Symbian rocked! The custom options, the Hacks, the apps (especially, the apps), the themes, were really easy & customizable, like never before.

Now, the future, IS Open Source platforms. And the top most of them all, is, & probably will be, Android.

Do you maintain an active blog or social network (like G+, YouTube, Twitter, etc.) where readers can follow you?

How will you recommend young developers get started with developing for Android?Dive in. Explore. Take chances.

I’ve seen most of the young wanna-be-devs running around, asking for exact step-by-step guides to xyz etc.That’s not the way it should be.If you want to be an active Android contributor, start breaking things apart, comparing, looking into the available tools, exploring.And, there’re tonnes & tonnes of guides & tutorials on XDA itself (not to mention, the rest of the internet)Start searching, reading, & try everything a hands-on.

And if you’re really serious about development, start learning codes.Learn basic languages such as C,move on to OOPs such as C++, JAVA at the very least. Make it your goal to understand every technical bit & aspect of how Android works. Try reading codes, & reverse-engineering. Again, dive-in.

Taking a screenshot with an Android phone used to involve rooting the device and installing an app, but later versions of Android and more recent handsets offer simpler ways to take a screenshot. Lately no one needs to root their device to take a screenshot.

There are two basic ways for you to take screenshots with your Samsung Android device.

The first one works on devices released since the Galaxy S3. So if you have a Samsung Galaxy S3 (i9300), a Galaxy Note 2 (n7100 / n7105) or a newer Samsung device, you can use this nifty method.

You simple wipe the brim (narrow side where your pinkie is) of your hand from the right of the screen across the whole screen to the left. If done properly, a white line flashes across the screen like the phone’s doing a photocopy and the screenshot saves in a Screenshots folder inside the Pictures folder on the internal SD card. Use the My Files app or some other file explorer app to find the file. Gallery will also let you find the screenshot. This is nice for showing off your awesome phone to your jealous friends.

This method might not work while you have an app open, in which case I recommend the second method of taking screenshots.

The second method is the fail-safe one and works with almost all Android devices, even on older devices like the Samsung S1 (i9000) and S2 (i9100).

You simply press and hold the power button and then press the Home button simultaneously. Again, your screen will flicker and you’ll get a notification that your screenshot has been captured. Voila!

This method can also be used in (probably) any application. If you have a different Android device and this method doesn’t work, try the following combination: Hold down the backspace key and press the Power button.

No problem!

Let us know if you have found some other nifty tricks for your Android device!

I have had countless problems with setting up Internet Information Services (IIS) on my local Windows PC.

I’m currently running Windows 8 with Visual Studio 2012 and use IIS to publish sites on my local machine.

Through all my troubles I gathered some tips, which I will explain here.

Firstly, go to Windows’ “Turn Windows features on or off”, and turn Internet Information Services ON.

In Windows 8 I had a problem where IIS just gave me an 404 error. After some Googling I found I had to turn on some Application Development Features too. Turn the following services ON in the “Turn Windows features on or off” feature: .NET Extensibility, ASP, ASP.NET, ISAPI Extensions, ISAPI Filters, Server-Side Includes.

It is good practice to install these features too before running into trouble.

This also fixed the following error for me:

< modules runAllManagedModulesForAllRequests=”true” >

This happens when the section is locked at a parent level. Locking is either by default (overrideModeDefault=”Deny”), or set explicitly by a location tag with overrideMode

And also:

Server Error in 'Default Web Site/MyWebApp' Application.
--------------------------------------------------------------------------------
HTTP Error 404.3 - Not Found
Description: The page you are requesting cannot be served because of the Multipurpose
Internet Mail Extensions (MIME) map policy that is configured on the Web server.
The page you requested has a file name extension that is not recognized,
and therefore is not allowed.
Error Code: 0x80070032
Notification: ExecuteRequestHandler
Module: StaticFileModule

Installation:

Install the .Net Framework 4

Register .Net Framework 4 in IIS using CMD.
To do this, run CMD as Administrator, type “cd C;\Windows\Microsoft.NET\Framwork64\v4.030319″. This path may be different depending on your .NET Framework version and whether your PC is 32bit or 64bit. Next, type “aspnet_regiis.exe -iru”.

IIS DateTime Short Date fix:

In Control Panel / Regional Settings / Advanced, check the checkbox that says “Apply to the current user and default user” and ensure your regional settings are correct.

To publish your site to your IIS through Visual Studio, just right-click on your project and select Publish. Follow the wizard and publish to “wwwroot/intepud” on your local drive.

Connecting from another computer

If you want to connect to your published application from another computer, you have to ensure that your firewall is configures properly. I usually just connect from another computer on my LAN for a few minutes, so in these cases I just disable my firewall for 10min.

I’ll be adding to this blog post as I run more problems. Please share your experiences or if there is something specifically you want me to go into.

Then download PuTTY (choose the .exe). Putty is a Telnet and SSH client. We’ll use this to start the script remotely.

I also enjoy using Netscan to find my Raspberry’s IP easily from my computer. You’ll need to know your Raspberry’s IP address to use in Putty.

The update process:

Ensure that your Raspberry is switched on and that it is booted into OpenELEC.

Then, on your PC open Netscan to scan for your IP address range (probably between 192.168.1.0 to 192.168.1.255). In the list of devices Netscan picks up, you will see one called OpenELEC with it’s IP address next to it.

Using Netscan to find my Raspberry’s IP address

Expand this device and you will see a few folders. Right click on the “Update” folder and hit “Explore”. Now just paste the “Update.sh” file we downloaded earlier in here.

Paste Update.sh in your Raspberry Pi’s “Update” folder

Open Putty and under “Host Name (or IP Address)” enter your Pi’s IP address, with port 22. Keep all other settings at default, and hit Open.

Putty’s configuration screen. Enter your Rpi’s IP address here

You will be asked to type your Login, which is “root”. Hit enter and type “openelec” as the password.

Logging into OpenELEC

Now do the following commands:

“cd .update” – change to the update folder

“chmod 755 update.sh” – make the update.sh file executable

“./update.sh” – execute the update script

The script will then automatically start downloading the new update if there is one available, and show you the progress.

The update process is running

Once the update is downloaded, your Raspberry Pi will be rebooted and you will have the latest version of OpenELEC.

Next time you want to update, just log into Putty and run those commands again.

Shout in the comments if this has worked for you, or if you have any problems I can help you with!

In this post I’ll show you how to rip a DVD and Blu-ray to your hard drive in Windows. If you have the right tools, it is very easy.

We will be using two tools, which are both free. We’ll install the DivX codecs first, and then use BitRipper to create the video file.

This method converts DVDs to AVI’s in one simple click.

BitRipper is free DVD to AVI software that allows you to back-up your DVD’s as AVI files on the hard drive. It does not require gigabytes of space to copy all DVD content to the hard drive before converting to AVI. It converts video on-the-fly, copying data and writing it to AVI file at the same time.

I chose BitRipper because it has the most simple and user-friendly interface. It also integrates to Windows™ shell and appears on DVD autoplay menu. Bitrepper is also a fully functional commercial quality product, available for free.

First, go to DivX.com and hit the “Free Download” which contains the codecs we will use. During installation you can choose to only install “DivX Plus Codec Pack”, but you can choose to install everything if you want. At time of writing, the installer asks to install Norton Security Scan too. Simply un-tick this and proceed.

There is a third step that you only need to use if you are having trouble ripping a copyright protected DVD. Simply install AnyDVD and use it to remove the protection.

AnyDVD works in the background to automatically and transparently enable read access of the contents of a movie DVD as soon as it’s inserted into the drive. The DVD will become useable to your windows operating system and all programs on your computer.

Open BitRipper after the DivX codecs are done installing, and choose the drive letter of the DVD. Then click on “settings” and simply select the DivX codecs. Then you can click “Start Ripping”!

BitRipper Options

It will take some time (an hour or so) and your DVD will be saved on your hard drive. It is that easy!

I recommend playing your videos with VLC Media player, but that is just my personal choice!

From now on, if you insert a DVD, your Autoplay will include the option to immediately save the movie to your computer!

I have found a neat little tool that allows you to easily resize images, even in batches. It’s called “Image Resizer for Windows“, formerly knows as the “Resizer Powertoy”. It lets you resize image files directly from Windows Explorer.

I like this free resizer tool because of its ease of use – it’s really dead easy and user-friendly. Even my mom can use it.

Image Resizer for Windows is a utility that lets you resize one or more selected image files directly from Windows Explorer by right-clicking. I created it so that modern Windows users could regain the joy they left behind with Microsoft’s Image Resizer Powertoy for Windows XP.

After installing it, open the folder in which the image(s) are that you would like to resize. Select all the images to resize and right-click on them. You will now see a new option called “Resize Images” in the context menu that looks like this:

Image resizer gives a new option in your right-click context menu

Simply click on it and you will see a menu like this:

Image Resizer is so easy to use and these are the only options you have to choose

You can choose from one of the pre-specified sizes to resize to, or specify a specific custom size in pixels, centimeters, inches and percentage. When done, simply hit “Resize” and your images will be resized and saved in the same folder.

By default, image files with the following extentions can be resized: bmp, dib, gif, ico, jpe, jpeg, jpg, png, tif, tiff, wdp. However, Image Resizer will also be able to use any Windows Imaging Codecs (WIC) that have been installed. For example, after installing the Microsoft Camera Codec Pack, vendor-specific formats from Canon, Nikon, Sony, Olympus, Pentax, Leica, Minolta, Epson, and Panasonic can also be resized.

Image Resizer actually uses a Fant resampling algorithm, which produces a higher quality output than all either nearest-neighbor, bilinear, or bicubic interpolation. For more information on the algorithm, see A Nonaliasing, Real-Time Spatial Transform Technique.

This resizing tool is great if you want to make images smaller for use on web sites, social network sites like Facebook or Twitter, or to send as email attachments. It makes your files smaller so they use less data and upload faster.

Remember that you can resize multiple pictures at the same time by simply selecting them all before right clicking and selecting “Image Resizer”.

I have not found anything that is easier to use, and I regularly recommend this nifty tool to clients who are less tech-savvy or want a hassle-free solution. It’s much easier to use than fiddling with Paint!

Samsung’s new flagship device, the Galaxy Note 2 (N7100 & N7105), brings a new feature called “Multi-Screen” which enhances multitasking. It allows you to run two applications in split-screen mode.

In this new split screen mode, your the Galaxy Note 2’s 5.5″ screen is divided into two sections, with a fully functional application running in each part.

You must first be sure to have the latest Samsung firmware as Multi-Screen was released as an update. Go to Settings -> About -> Software Update and check if there is a newer version available. If not, you probably already have the Multi-Screen enabled firmware.

To use this feature, be in your home view and hold the back button for 2-3 seconds. You will see a menu pop-up on the left hand side of your screen. In this menu you will find all the apps that support dual view. Click on one and drag it out of the menu. Then, choose another app in the pop-up menu and drag it to either the top or bottom of your screen.

Your screen will snap in two and voila! – You have two applications running in multi-screen feature. In this mode you can drag the horizontal slider up or down to allocate more screen space to either one of the applications. There is also a button to swap the two apps around and to make one fullscreen when you want to.

It is important to Note (no pun intended) that not all applications work with the multi-screen feature yet.

You will however need to use the default Samsung keyboard, as other keyboards will cover the entire bottom screen.

Google is at it again. This time with an augmented reality game called Ingress.

There are two teams in the world. The Enlihgtened Ones and the Resistence.

There are two factions. The Enlightened seek to spread this influence. The Resistance struggle to protect what’s left of our humanity.

The struggle is being played out globally. Track the progress of players around the world, plan your next steps, and communicate with others using the Intel Map.

There are portals placed around the world which emit energy. Your job is to capture these portals for your team’s control. To do this you have to use the XM currency. XM can be collected by going to points on your map.

The World is the game

Move through the real world using your Android device and the Ingress app to discover and tap sources of this mysterious energy, acquire objects to aid in your quest, deploy tech to capture territory, and ally with other players to advance the cause of the Enlightened or the Resistance.

Being an augmented reality game, it plays off in the real world. You use a map on your Android phone to spot portals and XM resources. Then you go and collect it!

Life seems “normal” but your world is being infiltrated. A mysterious energy has been unlocked by a team of scientists in Europe and is spreading around the world. The origin and purpose of this force is unknown, but some researchers believe it is influencing the way we think. We must control it or it will control us.

The struggle to save the planet spans the entire world. Groups of people acting together can be more effective than individuals acting alone. And cooperation across neighborhoods, cities, and countries will be needed to achieve the ultimate victory.

Jkay is a well-known developer under the Samsung Galaxy S2 & S3 community. He is the author of the Jkay Deluxe Framework – which speeds up access to settings and applications, replaces the default battery icon and is small, simple, and fast, without battery drain! How Samsung should have made it!

I have been lucky enough to ask Jkay a few questions in this short interview:

What country are you from?I’m from Denmark.

How old are you?43 years old.

What pets do you have?None.

When did you first start developing Android mods?July 2010 when I got my first Samsung Galaxy S.

How did you get interested in building mods?I started like most people on XDA I guess…. I wanted my phone to be the best it could be. It started with the lag fix for the i9000… you know… changing the partitions from RFS to EXT4. Then I started creating battery icons… minor themes… porting AOSP lock screens… etc..

What previous experience as a developer did you have before starting to work on Android?I code a lot in C++ and Java for the PC. That I have done for over 15 years now. But I have been coding since I was 10 years old.. started on the Commodore 64 with assembly then Amiga then PC and now phones. Today I speak SMALI… I dream in SMALI.. well… almost!

Do you develop your mods on your own or in a team?I do everything myself.. I like to work with Adobe Photoshop and Visual Basic too. These are nice tools for scripting the creation of new battery icons etc…

What type of feedback did you get when you made your first mod?I always got great feedback. Most people like what I do and want more. I started to take on requests. Made mods with different kinds of lockscreens and features.. Soon the number of combinations grew too large so something had to be done.

What do you think makes your mod so popular?I think JKay Deluxe is so popular because I release it for both odexed and deodexed Samsung ROMs. And I have written the Deluxe Settings app so people can select their own combination of features. I code it so that if people unselect all the special features then they will have the original Stock Samsung ROM. My code uses static booleans inside the original classes to check user selections so it is very fast and does not drain the battery additionally. You can even adjust the auto brightness and set it lower than normally possible. This can give you better battery life! But I think people just want something special on their phones. They like to be able to control the look and features of their phone to make it more personal. That’s also why I create the themes for my mod. Different colors and icons. And I think people like to use Samsung ROMs. Custom ROMs are nice, but I have found that there is always something not working… be it the FM radio, hardware acceleration or something else. I like to have Samsung fixing all these driver problems for me. Making the most of both the hardware and the software.

What devices are your mods aimed at? What devices do you wish to develop for in the future?I have only worked with Galaxy S, Galaxy S2 and the Galaxy NOTE. And I have just bought the Samsung Galaxy S3 and I’m now using that as my new developer phone.I would love to have my mod on more devices but as odexing needs to be done on the phone itself it is not possible for me to create it for a phone I don’t have.

Are there different versions of your mod and what are the differences between the various versions of your mod?I keep adding new features to my mod, and create it for the most popular stock ROMs available at the time of release so there are many older versions with fewer features for older ROMs. JKay Deluxe mod is still being used by people on the good old Galaxy S. I have made a special version for the Galaxy Note. Many ROM cooks include my framework in their custom ROMs with special themes. And people even port it to other models… like the US models. So yes…. there are many versions and variations of my mod out there.

Which version of your mod will you suggest to someone who wants the best battery life on their phone?You select what features you want enabled so it’s really up to you. You can deselect everything if you like. You can for example remove all the quick setting toggles from the notification bar. This will unregister all the listeners for these options and save a little battery I guess. But lowering the screen brightness saves a lot more battery I think.

What ROMs do you enjoy?Stock Samsung ROMs with JKay Deluxe. But I do remove a lot of Samsung apps and services. And I do mod a few of the apps like the launcher and the phone app. But those I keep to myself!

Which kernels do you like?I don’t use custom kernels. I need to be able to see if a bug stems from my mod or not. If I use custom ROMs or kernels then I can’t always be sure whose fault it is.

What will your next phone be?I have always loved the AMOLED screens from Samsung and I have just bought the Samsung Galaxy S3. So I am not really thinking about purchasing a new phone anytime soon. That said, I must say that I also like the new HTC One series.. and the One S does have an AMOLED screen.

How do you feel about the future of Android?I think the future looks good. I know Microsoft have a lot of money. They bought the Nokia brand to promote their Window Phones. While they mean it very seriously I still think they are too far behind Android to really be a threat. I don’t see Apple as a threat because they only have the iPhone. IPhone is a great phone for rich girls. But it’s not for the poor nor the nerdy kind of man such as I.

Are there any other developers or notable people to whom you are especially grateful of?There are so many great developers out there. But if I should name a few then I would have to say Koush for giving people the CWM, Supercurio for his work on Samsung devices and Chainfire also for his work on kernels, bootloaders etc. And I should also mention the guys at samfirmware.com. They all make the Samsung world a better place to be in!

Are you doing some kind of development as your full time job, or is there something else that you enjoy?I have a job as a Senior Software Developer. I develop software in both C++ and Java. I enjoy all kinds of stuff: Music, Sports, Science fiction, foods, spending time with my wife and 2 small kids, my garden, my house. I’m building a new garage for our car at the moment 

Do you have an opinion on whether or not we will get Jelly Bean Android on the Samsung Galaxy S2?I don’t know. I hope we do. I know that the Galaxy S2 has the hardware for it.

Do you have any other projects readers might be interested in?No. I put all my projects into this one mod. I have no plans on creating my own custom ROM. There are many apps that I would like to mod or create myself. But I don’t have the time for it.

Have you had any experiences with other platforms like Windows Mobile or iOS, and how do you think development of Android in the future compares to those platforms?No.. I started on coding for BADA when Samsung S8500 Wave first came out. But stopped very quickly as I ended up buying the Galaxy S instead.

Do you maintain an active blog or social network (like G+, YouTube, Twitter, etc.) where readers can follow you?No… no time for that. Currently people can only follow my work on XDA.

How will you recommend young developers get started with developing for Android?Google is your best friend. Here I’m thinking of the search engine. Read everything on developer.android.com. You can find answers to many questions on stackoverflow.com or xda-developers.com.

I am very unhappy with Winhost (aka Circle) at the moment and would urge everyone looking for Windows hosting to STAY CLEAR.

Let me explain.

First case
I needed to get into the PLESK back-end of one of my clients’ site after a very long time of inactivity. I couldn’t log into PLESK with the details I requested it to be reset.
On July the 19th I sent an email requesting the reset of the username and password. It is now 9 days later and I still haven’t received a reply. This is unacceptable.

Second case
Another client of mine had visitors to his website tell him someone visiting their website got a virus warning from Kaspersky. I thought this was odd. Later, another visitor got a similar warning from AVG.
When I got home I looked into it and MSE also picked up a Trojan horse on the site, called JS/BlacoleRef.BV.
This is a site that hadn’t been worked on for months and had been used without problems since then.
I contacted Winhost on the 25th (3 days ago) with the following message:

Hi,

Visitors to my website www.xxx.co.za have received reports from Kaspersky that the website is infected with a Trojan horse.

Can you please check the hosting server?

Thank you,

In the meanwhile I found that some JS files used for Lightbox had been edited a few days ago. Like I said, I hadn’t worked on the site in ages, so I knew these files were the cuplrits. I removed them and everything seemed to be okay. A Google search revealed that the virus might be the result of a security loophole in outdated PLESK versions. I checked another site of mine also hosted at Winhost and it was infected too!

The next day I mailed Winhost again with the following message:

Hi,

I emailed your support yesterday (2:12 PM) with a warning that there is potentially a trojan horse onwww.xxx.co.za. It is now 34 hours later, and you don’t look too worried.

Since this is a static website, and I hadn’t worked on it for months, I knew I could log in via FTP and search for the most recently modified files to find the culprits. I found the following files to have been modified:
JS\Prototype.JS
JS\Scriptaculous.JS
JS\Swfobject.js.

I scanned them with Microsoft Security Essentials and they were found to be infected. I restored them from my local back-ups and it seems to be okay now.

Two days ago I posted the little chat I was honoured to have with Codeworkx from Teamhacksung fame, in my Interview with Codeworkx. I have been equally fortunate to be able to ask team member XpLoDWilD similar quesitons – and he really showed his mettle.

Without further ado, let me show you what this respected Teamhacksung developer had to say in my short interview with XpLoDWilD.

What country are you from?
I’m from France.

How old are you?

I’m eighteen (and a half )

What pets do you have?
Does adb’s lolcat count as cat? If not… Nyancat

What ROM does your girlfriend/wife use on here phone (if applicable)?
She just switched to CM9 on her SGS2 recently

How did you join or start Teamhacksung?
I joined Team Hacksung on my 18th birthday, November 23rd 2011, after speaking and working with Codeworkx on IRC channels. Back then, I was helping on porting Ice Cream Sandwich on the Galaxy S II.

When did you personally start putting ROM’s out?
I released “my” first ROM starting with the Galaxy Note’s CyanogenMod 9, under Team Hacksung hood. My very first personal ROM was CyanogenMod 9 for Asus TF300T.

How did you get interested in building ROMs?
Doing software for mobile devices (and embedded devices in general) looks like an interesting challenge, and I’ve learned a lot of things around hardware/software interaction, the Linux kernel, and the Android OS in general. This is really “cool” from my point of view!. Then, having his own things used at the core of such devices makes you feel very satisfied.

As the members of Teamhacksung work from different places in the world, how do you keep good communication between each other?
IRC channels. We all have bouncers so we can see what has been said during the night once we wake up. We have an internal forum set-up… But I don’t think we even took a look at it since December.

What previous experience as a developer did you have before starting to work on Android?
Originally, I’m a C++ Game Developer. I’m very keen on all the 2D and 3D rendering things, OpenGL, textures, and all these kind of things. I did a few things on Android (Java apps), as well as playing at a high level with the Android OS, but I never took a chance to have a peek inside the actual sources.

What tipe of feedback did you get when you made your first ROM?
“WHEN WILL YOU FIX!!!!!!!!???????”
No seriously, it takes time to make ROMs (especially on new devices), it takes time to find out how to fix the issues, and to fix them properly. Most XDA users are so ungrateful with all the work we do, they don’t even take time to read first post, or the few last pages of the thread, and ask stupid questions. It’s boring when you try to get actual useful feedback about the ROM…

What do you think makes Cyanogenmod so popular?
The fact it brings AOSP to all devices in a delightful, clean and slick way.

What is your favourite launcher?
Back in the Gingerbread era, I used to install LauncherPro. Since ICS, I’m fine with the stock one.

What will your next personal phone be?
Unless something exceptional comes in-between, I’ll probably go for the next Nexus phone.

How do you feel about the future of Android?
Starting with Ice Cream Sandwich, Android really improved in terms of user experience. Everything is really smoothly integrated, have a nice look and feel, and it’s a pleasure to use your phone. I hope Google come with some exciting unique things in the upcoming Android version, things that Apple couldn’t sue (haha). In my opinion, I can’t see what could be better in Android, Jelly Bean is already perfect to my eyes.

Are there any other developers or notable people to whom you are especially grateful of outside of Teamhacksung?
All the CM heads (Cyanogen, Arcee, etc) for the great project they started and that became what we know today, and obviously Google for making all of this possible (and Open Source).

Are you doing some kind of development as your full time job, or is there something else that you enjoy?I’m still a student, but I have many projects around. As said before I’m originally a game developer, which is something I’m still doing French people can check out some of the work I’ve been doing on games at www.ouverta.fr (to sum up, we started with an MMO game concept for which we already have a working prototype, and we temporarily paused the MMO to work on an offline top-down action-shooter game taking place in the same environment, so we can re-use the assets later on while having a product we can release… Clever, isn’t it?) ; beside games I’m also a musician (guitarist, bassist and singer), a voice actor, I do graphics for websites, publications, icons, logos, etc ; I do some video post-production ; and I do quite a few other minor things around (like hanging out with friends and girlfriend )The recent release of the CM10 experimental mod for the GalaxyS2 caused quite a stir on XDA. What were some of the biggest obstacles with the S2/Note that you had to overcome, or still have to overcome in future releases to bring flashers the Jelly Bean experience?
Audio! I’m sad that Yamaha went for such an unnecessarily complex audio pipeline, and keep it closed-source. We won’t be able to live with it forever, Android evolves, closed-source blobs don’t. HWComposer is also having a bad time, though we managed to make it a bit better. The rest was pretty straightforward. FMRadio and HDMI still remains hard issues that will probably never be fixed, or will require some months.
Beside that, nothing really scares me for the future Android updates on Galaxy S II.

Do you have any other projects readers might be interested in?
I guess you read it all above

Have you hade any experiences with other platforms like Windows Mobile or iOS, and how do you think development of Android in the future compares to those platforms?
I once paired up with a friend to make an iOS App that would use the same mechanics I’ve setup in my Android app for a school project…
… we weren’t even able to display the first window.

Do you maintain an active blog or social network (like G+, YouTube, Twitter, etc.) where readers can follow you?
I’m quite active on Twitter (@xplodwild), and try to post from time to time on G+. I always wanted to do a blog, but I’ve no time to maintain it. I guess G+ will do the trick when I feel like writing an article.

How will you recommend young developers get started with developing for Android?
Learn Java, lean C, learn C++. Practice it. Don’t try to jump inside it right away because you won’t understand a thing and you will quickly get lost. Make simple things at first, make a small Java application, learn Oriented-Object Programming concepts, learn about Singletons, Factories, Interfaces, so that the day you see those in the Android sources (whether it is an Android app or the OS itself), you know what they’re doing and how they globally work.

Where can users download your work?
It’s at a lot of places… I took part in CyanogenMod 9 and 10 for Galaxy S II, Galaxy Note, Galaxy S III and Asus TF300T. Each has its own thread on XDA forums, check them out.

***

Here is XpLoDWilD’s current setup, as seen on his XDA signature at time of writing:

Again I would like to thank XpLoDWilD for taking the time to tell the Android community more about himself and his work. I’m sure I speak for many CM fans when I thank you for your excellent work. Keep it up!

You can find more about XpLoDWilD and his work at the following links:

Today I got a call from a distressed client, in a state because someone visiting their website got a virus warning from Kaspersky.

I thought this was odd, since I never had any such situation. Immediately I visited the web site in question, but unfortunately I had to use the good-for-nothing Internet Explorer since it was all that I had available at the time Everything seemed to work fine, and the McAfee anti-virus on that machine I used didn’t pick up anything unusual.

When I got home I loaded up the mothersip PC, and low-and behold I got a warning from Microsoft Security Essentials (MSE) after visiting the supposed infected website with Google Chrome.

Finally I had a name to work with (Trojan:JS/BlacoleRef.BV). Because this is a static website, I logged in via FTP to see which files had recently been modified. The site used the Lightbox Javascript mod, and I found its JS files (under root / JS /) to have been modified just recently, even though I hadn’t worked on the site in ages. I copied them to the mothership and MSE went crazy. I knew I caught the bugger.

I just replaced the recently modified files with the old back-ups I had locally, and now everything seems to be fine.

Plesk is always the first of the unwanted packages I uninstall on a new server. Trust my administration to a sack of random PHP? Don’t think so…

Now I’m obviously not as clever as Numb Nuts here, that I can manage my domains without PLESK or some type of back-end interface, but at least he told us who the culprit is.

I’m contacting my hosting providers now to hear what they have to say.I realized that other domains I manage from the same hosting company were also infected.

So in short, to remove Trojan:JS/BlacoleRef.BV from your website, find the files infected (probably Javascript files), and delete them. Replace them with your back-up copies.

I hope this helps someone!

My message to the hosting provider:

Hi,

I emailed your support yesterday (2:12 PM) with a warning that there is potentially a trojan horse on http://www.xxx.com . It is now 34 hours later, and you don’t look too worried.

Since this is a static website, and I hadn’t worked on it for months, I knew I could log in via FTP and search for the most recently modified files to find the culprits. I found the following files to have been modified:

JS\Prototype.JS

JS\Scriptaculous.JS

JS\Swfobject.js.

I scanned them with Microsoft Security Essentials and they were found to be infected. I restored them from my local back-ups and it seems to be okay now.

One of the best known custom Android ROM’s is Cyanogenmod. If you are a flashaholic, chances are that you have tried Cyanogenmod – and probably liked it.

Cyanogenmod

Cyanogenmod (also known as CM) is a customized aftermarket firmware distribution available on almost all popular Android devices. Recently they’ve made CM10 for the S3, which is based on Android Jelly Bean. They are also the leaders in porting Jelly Bean to the Galaxy S2, and just recently released their experimental CM10 (JB) for the S2.

There is a team of respected developers, called Teamhacksung, who are well-known for their help on development for Cyanogenmod on Samsung devices.. I had the opportunity to ask Codeworkx, one of the developers in the team, a few questions.

What country are you from?
I’m from Germany.

How old are you?
Wait… lemme think about it… 28 years old.

What pets do you have?
5 Smartphones and 1 Tablet.

What ROM does your girlfriend/wife use on her phone?
CyanogenMod on the I9100G.

How did Teamhacksung start? How did you get interested in building ROMs?
We started on the I9000 (Galaxy S) because there wasn’t CM or any AOSP based ROM available.
Used CM before on my HTC Dream aka. Google ADP1 and missed it a lot.
It was the first time we started to play with Android sourcecode and compiling it.

Do the team members work in the same physical location, or are you located apart?
It’s a hobby, so everyone is working at home. Our devs are located across the world.

What previous experience as a developer did you have before starting to work on Android?
Mostly webdeveloping (PHP, Javascript) and some little tools in C#.

What tipe of feedback did you get when you made your first ROM?
A huge wave of thanks, requests, stupid posts. The same like you get today!

What do you think makes your ROM so popular?
CyanogenMod is not “my” rom. There’s a big team behind this which is doing the whole magic.
Also, a lot of stuff comes from the community itself.
CyanogenMod is clean, simple, full of usefull features and extremly fast. It’s how Android should be.
A lot of people like the pure Google experience.
It also brings new Android versions to devices where the manufacturer dropped support for.

What are the goals you want Cyanogenmod ROMs to achieve?
World domination. Maybe a phone which gets shipped with CM preinstalled.
Would be cool.

What are the differences between the various versions of your ROM(CM7,9,10)?
07 = based on Gingerbread
09 = based on Icecream Sandwich
10 = based on Jellybean
11 = based on K******

Are there any non-CM kernels that your users enjoy with your ROMs?
A lot, but i don’t care about custom kernels.

What ROMs do you enjoy or follow, aside from your own?
Only CM. All my devices are running CM.

The Cyanogenmod team is currently developing for a myriad of different devices. Are there any specific devices you want to support soon?
We’re grabbing as much as possible. Mostly phones with a great userbase.
Spending countless hours on a low activity device doesn’t make much sense.

What is your favourite launcher?
Trebuchet. Simple and does it’s job.

What will your next personal phone be?
Probably a Nexus phone again. Best choice for people who want to flash custom roms.
Or a OMAP5 phone. *hrhr*

How do you feel about the future of Android?
Afaik Android is the biggest mobile platform. Don’t think that this will change in future.
Google is clever enough to beat competitors.

Are there any other developers or notable people to whom you are especially grateful of outside of Teamhacksung?
All CyanogenMod devs and everyone who’s contributing to this great project.

Are you doing some kind of development as your full time job, or is there something else that you enjoy?
I’m a buyer. Buying spare parts for a maintenance department and managing outside firms. No coding.

You just recently released the experimental CM10 for the SGS2. What were some of the biggest obstacles with the S2/Note that you had to overcome, or still have to overcome in future releases to bring flashers the Jelly Bean experience?
Working on the exynos platform is just painfull. Working on samsung phones in general is painfull because of the missing support from samsung itself. They’re living behind closed doors.

Do you have any other projects readers might be interested in?
Don’t think so. Android consumes most of my freetime.
There’s not much time to do anything else.

Have you hade any experiences with other platforms like Windows Mobile or iOS, and how do you think development of Android in the future compares to those platforms?
I don’t like closed platform and will never touch them.
Opensource is the way to go, so everyone can put his brain into it, work together and create something special.
And that’s why i like android. There are so much possibilities.

Do you maintain an active blog or social network (like G+, YouTube, Twitter, etc.) where readers can follow you?http://www.codeworkx.de

How will you recommend young developers get started with developing for Android?
Learning by doing is the key. Brewing custom kernels seems to be the easiest thing to start with because you’re getting kernel sources from the manufacturers which should work out of the box.

Where can users download your work on XDA?
On a lot of different threads in the device forums.

Here you can see Codeworkx’s current devices as seen on his signature on XDA at time of writing:

Siyahkernel is one of the best known kernels on the Samsung Galaxy S2, and recently on the Galaxy S3. The host of features this kernel provide makes it a popular choice among newbies and experienced Android users.

What I have come to love about Siyah on my Galaxy S2 is the host of features that can be accessed through the ExTweaks App. Whether you want to improve performance, battery life, enable BLN (back light notification), adjust screen settings, or dual boot between two ROMs – it can all be done with this kernel.

I have been fortunate to ask the developer of this popular Android kernel a few questions. This is what Gokhanmoral had to say.

Where are you from?
I’m from Turkey, living in Ankara, the capital.

How old are you?
37. Quite old compared to other devs on the XDA board but it has some advantages. I am not seeking for trouble as I had enough in my life already

When did you start putting out your first kernel?
If you mean Android kernel, about 10 months ago…

How did you get interested in building kernels?
I was making some modifications for myself and then I started to share them. It still did not change. I am sharing what I use for myself.

Do you develop your kernel on your own or in a team?
On my own.. I am not a member of a team or a group.

What type of feedback did you get when you made your first kernel?
First it was created in the Android Development section (not in the Original Android Development section) as it didn’t feel like it deserved the “original” title, and only when I felt like it deserved to be in Original section I asked the mods to move it there.
People liked the kernel at first, and some of the changes were my “dreams”, such as supporting both Cyanogenmod and Samsung ROM’s with a single kernel image, and dual-booting, and breathing effect, and many others. People liked some of them, and some people did not like the number of options available in the kernel.
I received both positive and negative feedback from users. As they are human the feedback is sometimes far from objective.

What is your goal or idea with Siyah Kernel? What do you aim to achieve with it?
I have no goal in kernel development.
I was not trying to achieve anything and I still do not. I believe in open source and sharing. Siyahkernel is not my kernel, it is owned by the community, and it is more Linus’s work than mine. Most of the developers forget the fact that their changes are so little compared to what is already in there.

I wasn’t even thinking about being a recognized developer and was really happy being a senior member on XDA. Then, one day I noticed that the admins selected me as an elite recognized developer. It was very surprising and I must say that it felt good but even if I wasn’t selected as one SiyahKernel would have the same features and strategy.
So, I make some changes and share and people like it. They thank me and that’s all that matters.

What do you think makes Siyahkernel so popular?
Honesty.. the kernel always has bugs. Sometimes very serious bugs, sometimes tiny, but I never tried to hide anything and never lied.
I do not have a problem with saying “I don’t know” and most people like that.
Of course, the existing features are also the reason for the popularity, but there are other kernels which have the same features.

Which ROM do you use as a daily driver?
It changes a lot. I support most of them and therefore I have to change ROM’s sometimes daily to make some tests.

What is your favourite launcher?
Nova. but it doesn’t mean that it is the best one. I liked it, I am used to it and it fulfills my needs.You are currently developing for both the S2 and S3. Do you have plans to work on any other phones?
No. I am sharing something that I do for myself. Maybe I can develop some apps that supports other phones but I won’t develop kernels for phones that I don’t have, unless they are very similar (like ones I did for S2).

What will your next phone be?
I don’t know, but I like Samsung hardware and quality. Unless they make a big mistake in the future I will try to follow their products.

What are your biggest plans for the future of your kernel (features etc. you want to include)?
Dualbooting for S3. It may sound as if it is not a big plan as I have already done it in S2, but I want to make it in a proper way for S3.

When will you be happy with the kernel for the S2 (and stop improving on it)?
I am already happy with the current one and I don’t add too much fancy experimental features as it is used by my wife and I want to have a happy marriage

How do you feel about the future of Android in relation to active development and market share?
I won’t say that “Android is the future”. I am more a user than a developer for the Android world. Personally, I don’t like to be limited in any way and Android gives me that freedom.
There may be people who prefer to spend less time on something and therefore choose other platforms.
As long as we have the freedom of choice there will be more than one option and some of them will be popular as they are today.

Are there any other developers or notable people to whom you are especially grateful of?
Lots.. I don’t want to name them all as I am afraid of missing one or two…

Are you doing some kind of development as your full time job, or is there something else that you enjoy?
I am an embedded systems developer in my daily job.

Do you have an opinion on whether or not we will get Jelly Bean Android on the Samsung Galaxy S2?
I think (and hope) that Teamhacksung will make a port when they finish with the initial port for S3. They are just great developers!

Do you have any other projects readers might be interested in?
Recently I decided to make some audio enhancements for S2 and S3 (apps, not just kernel side) and those will provide some free alternatives to users.
As for my first project I developed Fastdormancy Toggle app for the Galaxy S3 (should also work on other Galaxy variants) and next was STweaks, a configurator for my kernel and some others which use /res/uci.sh interface that me and Xan developed together.
Next app will be a Voodoo Louder alternative for galaxys2

Have you hade any experiences with other platforms like Windows Mobile or iOS, and how do you think development of Android in the future compares to those platforms?
I have quite a lot of windows mobile and .NET experience but no iOS experience yet. To me, Windows is so slow and Apple is so close.
I am not sure about Windows Mobile but I am sure Apple will be a notable competitor for quite some time for Android.

Do you maintain an active blog or social network (like G+, YouTube, Twitter, etc.) where readers can follow you?
No. I just use XDA forums to announce my kernels. but I have a twitter account (gokhanmoral), facebook (gokhan.moral) and google+ (gokhan.moral) but I do not use them actively. I recently used twitter for a discussion and maybe I will continue to use it for some minor announcements…

Where can users download your kernel and discuss it on XDA?
I have two active threads: one in Original Development section in i9300 and one in Original Development section of i9100 on XDA.
There are some general discussion threads in other sections which I ask users to chat and talk about battery life and non-development related issues.
I also read them, but not as frequently.

***

I’d like to thank Gokhanmoral for answering these questions and I hope it familiarizes more people with his excellent work on Siyahkernel.

Finally I’ve currently got a setup that seems to work well for me. Now, I share some tips I’ve come to learn from others. It will mostly be the same for all other Android devices, especially the Samsung Galaxy S2 and Galaxy S3. Some of the tips below needs root, and some are kernel specific.

If you do choose Siyah kernel, boot into clockwork recovery and change the profile to “Battery” in advanced options.

Download ExTweaks if you choose a kernel that supports it (Siyah-based kernels). You can make various changes with this app if your ROM supports it.

The biggest battery drain comes from the huge screen on smartphones like the S2 and S3. Use auto brightness.

Remove all applications that keeps your phone awake (Use BetterBatteryStats to see which those are). This includes apps like Facebook (rather try Friendcaster) and apparently battery saving apps which do not work.

Enable Gentle Fair Sleepers (GENTLE_FAIR_SLEEPERS).

Keep CPU Hotplug enabled – it switches on the additional cores as they are needed. Keeping it enabled lets the CPU get jobs done quicker so it can return to a lower state sooner.

CPU Idle Mode = AFTR + LPA

Smooth Scaling Level = 800mhz

Max CPU clock = Dual core mode

SCHED_MC = 2

Undervolt CPU with -25mV. Some successfully under-volt with more, but my phone gets very unstable with anything more than 25mV.

CPU Governor = Pegasusq

Scaling Max Freq = 1,300mhz (slight overclock)

Scaling Min Freq = 100mhz

If you don’t play games much, try under-clocking the GPU too. I use 40mhz/100mhz/160mhz with and GPU voltages at 800mV\800mV\900mV.

If you think you can make your screen’s auto brightness even darker, change Gamma Shift to -10 or less.

Make vibration intensity less than default 6 (I use 6).

I prefer to use Breathing BLN with 1 min timeout. Usually this catches my eye, which saves me unlocking the screen and waking it up – saving battery power in the end.

Default scheduler change to SIO.

Switch your phone off while charging. When you get the fully charged notification, take the battery out for 3 minutes. Reinsert the battery, plug charger back in and switch phone on. When it says fully charged again you can remove your charger.

Remember that each person has his own setup that works for him. This works for me. I’d like to hear some more opinions and tips.Please leave comments!

The Samsung Galaxy S2 (I9100) was first announced on February 2011. At the time of writing this post, the phone is almost a year and a half old and has been replaced by the Samsung Galaxy S3 (I9300), but is still a one of the best Android performers out there.

I’ve only recently started flashing custom ROM’s, kernels and trying new themes and launchers. Finally I found a combination that works for me. My biggest concern is battery life and the look and feel of the phone.

I first tried Cyanogenmod, which is great! Try one of the latest CM9 nightly builds. But I actually like the stock Samsung ROMs more. If you are like me, you would have two options: 1. Wanamlite ROM, or 2. NeatRom. I like NeatRom, but haven’t really given Wanamlite a fair chance yet.

My favourite is NeatRom. It basically consits of the latest stock Samsung ROM, stripped down a little, combined with the Jkay framework (which includes a lot of mods and customizable extras), and Vertumus’ ICS Domination theme.

However, if you prefer to not have the Vertumus theme, you can just flash the latest ROM from the Neatrom thread that is unedited (the developer doesn’t call them NeatRom in the OP). Then you will basically have a stock Samsung ROM.

Personally I prefer having the stock Samsung ROM and adding the Jkay framework to that. Then I just get a nice launcher from the Play store (I like Nova launcher). And Bob’s your uncle.

Should the developer of Neatrom release a newer ROM, you will be able to flash the new ROM ontop of your current Neatrom ROM in most cases, as long as you don’t have any additional mods installed.

Head on over to the NeatRom XDA thread for all the download links. You will find a very active and helpful thread and a top class developer!

Before starting flashing fanatically, I suggest getting a decent kernel like Siyah Kernel. Though I think Gokhanmoral will soon stop developing Siyahkernel, it is one of the most stable ROM’s that also provide dual booting.

This is a really simple and completely free way to connect your Android phone or tablet to your wi-fi desktop computer or laptop. This guide can also be used to allow more than one device of any type to connect to an ad-hoc network.

A lot of Android users would like to receive an Internet connection through their wireless network onto their device. This means that you share your computer’s Internet via wi-fi so your phone can use that instead of its own 3G or data network. Pretty good idea to save on mobile data.

The proper way would be to buy a hardware access point or router to which your Android device can connect. But if you don’t already have a wifi router I prefer the poor-man’s solution which I’ll describe here.

Usually this would be done by creating an ad-hoc wi-fi network on your laptop (or computer) and sharing the Internet which your laptop currently receives through a modem or LAN cable. Then you just search for wi-fi from your Android phone or tablet, and Bob’s your uncle. Not quite…

You see, for some strange reason Android devices can’t currently connect to ad-hoc networks. Pretty lame, seeing that those pesky iPhones can. Knowing them, Google is working on it for future Android versions.

Luckily, some clever guys found a work-around. And it’s pretty simple too. I got it set up and working in less than 10 minutes. I’ll tell you how to create a wi-fi network for your Android phone or tablet in just a bit.

But first we should look at some important things. The most important thing for this guide is that you have Windows 7 on your laptop, notebook or desktop computer. If you have a previous Windows version, you might as well stop reading here. No jokes. Widows 7 has additional features for wi-fi networks that will be used in this guide, which isn’t available in previous versions. I’ll repeat: It will definitely NOT work on Windows Vista or XP.

Next, you should update your wireless card’s drivers. Usually your updates can be found through Windows Update, otherwise you can check the manufacturer’s website for support.

We haven’t even started, yet we’re nearly done!

We’re going to download a neat little program called Connectify. Point your computer’s browser to www.connectify.me and choose the free download (you don’t need the paid version).

Once you downloaded that bad boy, install it by following the easy steps. Now reboot your computer (very important).

After Windows gracefully loaded, we can start using Connectify. First ensure that you aren’t currently connected to another wi-fi network with the same network card. If your wi-fi card can switch on or off, ensure that it’s on.

Now open your spanking new Connectify application and see the plan come together. This software makes your wi-fi card act like a wireless access point (geek: WAP).

We need to do this as an alternative for an ad-hoc network. The difference between a WAP and an Ad-Hoc network is that a WAP can accommodate multiple devices at one time, and an ad-hoc network only connects two devices with each other (much like connecting two computers by laying a cable between each). Android only connects to a WAP at the moment.

We are basically tricking the Android phone or tablet into thinking that the wi-fi network is actually an access point or router.

Inside Connectify you really only have a few settings to look at. It’s really simple to set up.

You don’t need to specify a new Hotspot name, you can keep it “Connectify-Me”. Enter a new password (8 characters or more) and remember it. You’ll need it later on.

Under Internet you can choose the device from which you currently receive your Internet connection for your PC. In my case its a LAN cable, so I’ll select “Local Area Connection”. Yours might be through a USB modem device.

For the Advanced features you can leave the default values. Now click on the magic “Start Hotspot” button.

The software will switch to the “Clients” tab and wait for devices to connect. Now grab your Android device frantically and go to settings -> Wireless and network -> Wi-Fi Settings and turn your wi-fi on.

It will scan for new networks and hopefully display your new network (called “Conectify-Me”. Choose to connect to it and enter your password.

It may display “Authenticating” and “Obtaining IP Address” messages first. And BOOM!! It will say “Connected”.

Now test your new-found freedom by opening up the browser on your Android device and see if it loads a web page. Your phone or tablet will always show a wi-fi icon when it is properly connected to a wi-fi network.

FYI: I set up this fake Wireless Access Point on a very old laptop which barely runs Windows 7 properly. It’s an Acer 3054 WXMi with a Radeon Xpress 1100 chipset and a built-in Atheros wireless network card. The Android device I used was an un-rooted, straight out of the box Samsung Galaxy S2 running Gingerbread without any modifications. It should work on any other Android device too.

If you can’t get it to work, note that not all wireless network cards support this functionality. Like I said earlier, update your drivers. Ensure that your Internet is working on your computer, and double-check each of the settings mentioned here.

If you found this guide useful, let me know via the comments field.

Now you can download like a boss without paying expensive 3G prices. The way it should be.

Like many Android users, you might get bored with the standard stock Ice Cream Sandwich (ICS) ROM. Here is how to flash a custom ROM with Siyah kernel. If I was able to do it, anyone can. Here’s a guide for noobs.

I did this with the Cyanogenmod 9 ROM on my Samsung Galaxy S2. But it should work similarly on all Android devices.

Ensure your phone has enough battery life (more than 50%, just to be safe). Also ensure you have enough free storage space (about 1Gb).

Switch your phone off and boot it into Odin mode. This can be done by pressing the following key combination when your phone is off: The volume-down button + the home button + the power button. It will display a warning, and you have to press volume-up button again to continue. Once in Odin mode, open Odin on your computer and connect your phone via USB.

Odin will pick up that your phone was connected. Next, click on PDA and browse to the Siyah kernel you downloaded earlier.

Now flash the PDA. Odin will display a ‘success’ status. Now you’ve got a rooted phone. If that is all you want, you’re done.

But if you’d want a custom ROM, like Cyanogenmod, read on.

The Siyah kernel replaced your default bootloader. Now you can dual boot with stock ICS and a custom ROM if you want.

Next, download the latest Cyanogenmod build for your device on your PC. Now you have to move that .zip file to your phone’s memory to be used later by Siyah kernel. You can put your phone into USB file transfer mode to transfer the Cyanogenmod ROM to your phone’s memory.

When you have the .zip file on your phone, go to the CWM app on your phone. This app was added by Siyah kernel. Select Boot Recovery to reboot your phone into Siyah kernel’s bootloader. This is where the magic will happen.

Now we are going to flash Cyanogenmod (or other ROM compatible with Siyah kernel) as the secondary ROM. This way, you keep your original ROM (stock ICS), and dual boot with Cyanogenmod ROM, allowing you to use CM and see if you like it first, before making it your primary.

Browse to the .zip file and select it. Choose Yes to flash. It may take a while to install. CWMR Touch (Clockword mod) will display a “success” message when done. Now you have Cyanogenmod as your second ROM!

Every time you power on your phone, the boot loader will allow you to choose which ROM you’d like to use (currently stock ICS is default, CM9 is secondary).

If you like your newly installed ROM and would like to make it your primary ROM, you can do the following. Reboot into CWMR Touch (Siyah kernel’s recovery mode), and select “Dual-boot options” again. Now select “Swap 1stROM and 2ndROM”. It will take a while to back up your primary ROM, move your secondary ROM to your phone’s primary ROM position, and restore your original primary ROM (stock ICS) to the secondary ROM position. Now your phone will automatically load the Cyanogenmod ROM when it boots, but you still have the option to load the original stock ICS ROM if you prefer at boot time..

How to update custom ROM

To update your custom ROM when a newer version is released requires that you first swap your primary and secondary ROM again (making stock ICS primary and Cyanogenmod secondary). If you kept ICS as your primary ROM from the start, this step isn’t necassary.

Next, you have to save the .zip file of the updated ROM you’d like to install to your phone’s memory and load it with Siyah kernel’s recovery bootloader, just like done previously. You will be overwriting the current Cyanogenmod version on your phone with the new version. The update will be non-wipe, so you won’t loose any of your apps or settings.

Disclaimer: This process will count towards your device’s custom binary counter, which cannot be reset, meaning your warranty will be void. There is also always the possibility that you might soft brick your phone. I accept no responsibility for what you do with your phone (duh!.).

Frequently asked questions (FAQs):

1) What is dual booting?
Dual booting is the ability to boot into two different Ice Cream Sandwich-based ROMs (like CM9 and your stock ICS ROM). You are given the opportunity to choose which ROM to boot each time your phone starts.

2) How is this done?
This is achieved by sharing the kernel and using a hidden partition in dev/block to store the 2nd ROM’s /system and the /sdcard (Internal storage) to store /data and /cache inside a hidden folder (/sdcard/.secondrom)

3) How long does it take to clone a ROM?
It should take around 7 minutes

4) How do I choose which ROM I want to load?
When you get the splash screen to choose between ROMs, touch the screen or press volume UP to enter the PRIMARY ROM, and press the Home button or volume down for the SECONDARY ROM.

5) How can I remove the Dual boot and its partitions?
Just use the “Remove 2nd ROM” option in the Dual Boot options menu.

6) If I format my /sdcard, will my second ROM go kaput?
Yep, because you’re wiping the folder that contains /data and /cache.

7) Can I dual boot a gingerbread ROM in a ICS ROM?
Nope. You can’t mix ICS-based ROMs with Gingerbread ROMs.

8) What’s the basic architecture behind dual booting?
Any rom will have /system, /data, /cache partitions and requires a kernel to boot. Primary rom has all these partitions on the same location and partitions as if you were single-booting. ie, /dev/block/mmcblk0p12 for /system and rootfs for /data and /cache. Secondary rom uses a hidden partition (/dev/block/mmcblk0p9) for /system and sdcard to store /data and /cache partitions. They’re stored in /sdcard/.secondrom directory as mountable ext4 block device images (data.img and cache.img).
Kernel partition is shared, so same kernel boots both the roms. If you switch from Siyah to a different kernel, dual booting will not be available even though there’s a clone of secondary rom. Internal sdcard, external plastic sdcard, /efs, /emmc, other kernel related virtual filesystem directories, etc are shared among roms.

10) Will i get a prompt to dual-boot if i’m not using dual boot, as in i haven’t cloned any rom to use as secondary?
NO

11) I don’t like waiting for 3 seconds to boot into primary ROM.A. Touch the screen/press volume up key immediately upon prompt.

12) How to undo dual booting?
Use “Remove 2ndRom” from dual-boot options in recovery.

13) How to remove secondary rom if “Remove 2ndRom” in touch recovery fails for some reason?
Format 2nrom /system partition from dualboot options in recovery, remove data.img and cache.img under /sdcard/.secondrom directory manually by booting into primary rom. Also delete /secondrom directory.

14) So if at all i format /sdcard, my second rom is gone?
Yes

15) Can i have both aosp roms/both samsung roms/first aosp, second samsung/first samsung,second aosp?Yes

16) Can i have one GB rom and second ICS rom?
No

17) Why?
Kernel partition is shared between roms. Dual boot functionality is implemented in ICS kernel. ICS kernel can run only ICS roms.

18) Can i have different kernels for the two roms?
NO. Kernel partition is shared.

19) USB mass storage works?
Yes. Both cards will be mounted for primary and secondary roms. MTP works too.

20) If i had the same /data partition shared between roms, i could use same apps on both roms.
Data partition can not be shared as they’re incompatible between roms. (Sometimes dev asks you to perform full wipe even if you’re switching between versions of the same rom right). Even if they were shared, separate dalvik caches has to be used and hence every boot will take a long time to rebuild dalvik.

21) Are init.d scripts and extweaks profiles shared across the roms so that i can make changes by booting into any rom and the other rom automatically inherits the settings?
NO. Roms have differet /system partitions so different init.d directories. Roms uses different /data partitions so different extweaks settings since extweaks profiles are stored under /data/.siyah. Configure both separately. Initramfs scripts are shared anyway because Roms use the same kernel.

22) Can i use titanium to backup and restore apps on both roms?
Yes. With the default settings of titanium backup, it uses /sdcard/TitaniumBackup directoryto backup apps. Assume you have the same app installed in both roms and you backed up the app from both roms. Then when you restore app+data, the last backup is restored. (regardless of from which rom was it backed up last. Because the app database is overwritten for each backup). If you want to maintain exclusiveness between apps in the two roms, use a different backup directory in second rom. Reason for exclusivity could be – you need different settings for same app in the roms OR you have reached level 2 of a game in rom1 and level 6 in rom2 and you need to maintain that, etc.

21) After setting up Second Rom, i don’t see a prompt to boot into second rom.
Try wiping Second Rom Cache and Dalvik.

22) What’s happening when i wipe /data and /cache of 2ndROM during the first time setup of dual boot?”
Two empty mountable EXT4 images – data.img and cache.img are created in /sdcard/.secondrom. While flashing zips to second rom, /data and /cache of second rom needs to be mounted in respective mmcblk. This empty .img files helps zip flashing without having the trouble to create them first.

23. Will flashing a rom zip to second rom (when i already have dual booting) change kernel? I may lose dual boot if so.
NO. Flashing kernel is prevented for second rom if the zip contains a kernel.