How To Root LG G2 F320S (Korean Version)

If you are new to Android and have not heard about rooting, please read this link for information about it.

Rooting your Android device can be a scary process as the information found on the Internet is not always update to date, and the information contains inside does not always pinpoint to the condition of the device on your hand e.g. the firmware version of you phone is later than what the guides written, making your wondering if the guide still works.

 

Today I need to root my LG G2 F320S phone, with LG software (firmware) version F320S21u, Android version 4.4.2, build number KOT49I.F320S21u. This information can be found in menu > System settings > General > About phone >Software Information.

My phone has never be rooted, is running stock firmware.

 

Step 1: I need to root my phone. I use towelroot. Click the lambda sign to download the tr.pk package.

Step 2: Copy the tr.apk to my LG G2’s internal memory.

Step 3: Follow the instruction here for installing towelroot. Some of the key point is to allow the phone to install third-party application from unknown sources, i.e. the tr.apk file I have just downloaded.

Step 4: According to the instruction, I should have successfully rooted my device. I need to check to make sure my phone is rooted, so I install root checker and check. The application tells me my device is successfully rooted.

Step 5: From this web page, I know that since my phone is rooted, it means any application can do privileged actions without my knowledge! So I need to install SuperSU, which will prompt me when an application wants to access privileged actions (e.g. do something which may potentially danagerous). So I install SuperSU.

Step 6: When I installed SuperSU, it asks me how to update the SuperSU binary. I choose Normal as I don’t have any TWRP nor CWM. However, it says failed. I don’t know what to do.

One of the reason I root my phone is that in Android 4.4 (code name KitKat), there is a new change on the SD card support which you can read from here. Simply put, I can’t delete photos stored on the SD card using third-party applications, I can only use the built-in Gallery app to do. However that built-in application’s feature is average. So I need to break this limitation.

Step 7: I install SDFix: KitKat Writable MicroSD, and run it on my phone. I follow the on screen instructions to perform the operation to break the limitation. Remember to reboot the phone to make the changes in effect! Later I use the QuickPic application to delete photos stored on the SD card… and now it works!

 

It is pretty much fulfilled my purpose on rooting my LG G2… able to remove the limitation of SD card introduced by Android 4.4! However, I want to see what can I do after rooting it.

I google for “things to do after rooting android”, lots of articles come up. Like this one.

 

Remove Pre-installed System Application (Bloatware)

Step 1: Install System app remover (ROOT).

Step 2: Run the application to remove unnecessary application, which are mainly Korean application and unnecessary ones. Don’t worry! You can restore them from the recycle bin in System app remover if anything goes wrong.

Here is the list of application I removed:

  • AhnLab V3 Mobile 2.0
  • App Guide
  • Call SVC Center
  • Cyworld
  • hoppin
  • Life Square
  • Life Square Log Manager
  • MelOn
  • Mobile T world
  • Mobile T-money
  • Nate
  • NateOn
  • paypin
  • Remote Care
  • RemoteCall Service
  • Smart Bill
  • Smart Touch
  • T cloud
  • T map
  • T membership
  • T store
  • T store Agent
  • T store ARM
  • T store Downloader
  • T XXX (korean characters)

My Experience of Setting Up DKIM and SPF with Postfix and Ubuntu For Sending Email

I am developing a web application which needs to send email. The application is running on Ubuntu 12.04 64-bit and is using Postfix as the MTA, and therefore the web application is using Postfix to send outgoing emails.

To raise the chance of successful delivery of mail to the recipients, it is advised to setup DKIM and SPF for my environment.

Continue reading

How to Install Gitorious 2.4.x on Ubuntu 12.04

There are lots of tutorial flowing on the web regarding the installation instruction of Gitorious 2.4 on  Ubuntu, however the problem is (at the time of writing @ 2013-06-20):

  1. The instruction does not point out which version of Gitorious it is installing
  2. Some of them are just copying from other website.
  3. As of Gitorious 2.3/2.4 (I forgot), the ultrasphinx thing is deprecated and is switched to thinkingsphinx (yes, if you don’t know, than the guide you are reading is bad)
  4. The instructions you really always mentioned about Ubuntu 9/10/11.

Now I have spent hours on trying it on my configuration, and now I can tell you firmly what is the success factor: Continue reading

Ubuntu Seems Hangs After Reboot

Please refer to the post at this link: http://www.statusq.org/archives/2012/11/16/4613/

In short:

  • After a power failure or whatever recent, the machine shutdown abruptly.
  • Upon reboot, it seems to the sysop that the machine can never come back.
  • You google a bit but find no resolution. Keyword: Ubuntu, GRUB.

Reason:

  • The grub script has a default timeout = -1, which makes the menu does not have timeout.

Resolution:

  • For Ubuntu 12.04 and later, there is a option in /etc/default/grub to disable this type of timeout called GRUB_RECORDFAIL_TIMEOUT.
  • To solve this, set GRUB_RECORDFAIL_TIMEOUT  = 0 to disable the timeout, or a positive value for a delay in seconds. If set to -1, the menu will never timeout.
  • After changing the configuration, please run update-grub to make the change in effect.

External links:

  1. http://ubuntuforums.org/showthread.php?t=2069267
  2. http://www.hamiltonpdx.com/blogs/index.php/ubuntu-12-04-server-restoring

How to Make Mailbox Style Multiple Checkboxes and Pre-select

Form bean:

public class MyForm {
  private String[] selectedIds;

  public String[] getSelectedIds() {
    return this.selectedIds;
  }
  public void setSelectedIds(String[] ids) {
    this.selectedIds = ids;
  }
}

Action:

public class MyAction extends ActionSupport {
  MyForm form;
  List<String> completeList;

  public String getForm() {
    return this.form;
  }

  public List<String> getCompleteList() {
    return this.completeList;
  }
}

JSP:

<s:iterator value="completeList" var="id">
<tr>
  <td><s:checkbox name="form.selectedIds" fieldValue="%{id}" id="id-%{id}" value="%{id in form.selectedIds}" /></td>
</tr>
</s:iterator>

How to Create a Struts 2 Component with Freemarker

For quick starter, you can use tag file to create a reusable component for your JSP application. However, if you wants a more serious tag, or need to use Struts’ value stack ability to lookup action variable, it is better to create  a Struts component.

The steps are simple:

That’s all! This is tested on Struts 2.3.x. Continue reading