Working with JNI so files on Android Studio

Android Studio still in beta version. But i do love working my project under it. Even it does not support bundling native JNI build. Still, you can include you native so files to be built in your APK.

You have to include you JNI files to path: scr/main/jniLibs and paste your jni files inside this folder.

So here is my path tree:




Note that this is a temporary workaround until gradle supports building native projects.


Enabling Intel HD 4000 with Intel Injector

Last time i successfully built my Mavericks Hackintosh with internal vga Intel HD 4000. Luckily, chameleon bootloader has already built-in injector for Intel to enable Intel HD 4000 to fully enabled. Of course QE/CI also enabled. The injection no need to edit DSDT or EFI Strings.

This is especially useful for Laptops PC, but also for Desktop systems without a dedicated video card. We need to edit org.chameleon.boot.plist and add keys that available below. Just add bootflag GraphicsEnabler=Yes and keyflag below.

Keys that available for org.chameleon.boot.plist:

– For Ivy Bridge the old keyflag HD4K-ig is now deprecated the new name is IntelCapriFB (match with Apple kext name for that hardware)

ex: IntelCapriFB=a_value from 0 to 11

0 = 00006601
1 = 01006601
2 = 02006601
3 = 03006601
4 = 04006601
5 = 05006201
6 = 06006201
7 = 07006201
8 = 08006601
9 = 09006601
10 = 0a006601
11 = 0b006601

– For the Haswell the recently introduced key flag HD5K-ig is also deprecated and the new name is IntelAzulFB (Same things… match with Apple kext)
ex: IntelAzulFB=a_value from 0 to 15

0 = 00000604
1 = 0000060c
2 = 00001604
3 = 0000160a
4 = 0000160c
5 = 00002604
6 = 0000260a
7 = 0000260c
8 = 0000260d
9 = 02001604
10 = 0300220d
11 = 0500260a
12 = 0600260a
13 = 0700260d
14 = 0800260a
15 = 08002e0a

This bootloader also introduced the ability to inject a custom AAPL,ig-platform-id for both kind of gfx (Ivy & Haswell) the keyflag is InjectIntel-ig
ex: InjectIntel-ig=09006601 (a flipped 01660009)

The priority is:
1st InjectIntel-ig
2nd IntelXxxxFB
3rd the default setting (based on BIOS memory for Ivy, and default ig for Haswell)

Example data put into org.chameleon.Boot.plist in this case for my laptop:


Upgrading Hackintosh OSX Mavericks 10.9.0 to 10.9.5 on Asus A46C/K46C Series

Upgrading Hackintosh to latest version is sometimes to tricky. You either ended with working hackintosh or had a kernel panic or not booting. It happens the upgrading process maybe delete your custom kext driver or your configuration. So better to backup your custom kext, DSDT (if any), and Chameleon/Chimera/Clover configuration.

In previous post, i had successfully install hackintosh osx Mavericks to my Asus A46C Series that works too to Asus K46C Series. Niresh Mavericks Distro is 10.9.0 version, while latest version is 10.9.5. My laptop now running smoothly and no difficulty to upgrade it.

Here you go the tutorial how to upgrade hackintosh OSX Mavericks 10.9.0 to 10.9.5 on Asus A46C Series / K46C Series laptop.


1. Backup any custom kext or DSDT/SSDT or Chameleon/Chimera/Clover configuration.

2. You need to download the latest OS X Mavericks 10.9.5 Update (Combo) from the apple official site: http://support.apple.com/kb/DL1760

3. Double click the DMG then follow instruction to finish the installation.

4. Then, you will be asked to restart to finish the installation.

5. Once done, your laptop will reboot as usual. If you have any difficulty to enter to Mavericks Desktop, please check my previous tutorial. The problem usually the same when you first install your hackintosh.

Here is my about mac profile of my laptop, i then can using latest XCode to program iOS 8 that need Mavericks 10.9.4

Hackintosh Mavericks 10.9.5 242x300 Upgrading Hackintosh OSX Mavericks 10.9.0 to 10.9.5 on Asus A46C/K46C SeriesIf you have any question or any issue regarding this, please post it below.

Happy Hackintosh!


How to install Hackintosh OSX Mavericks on ASUS A46CB laptop from Flash Disk

If you ever want to program an iphone app, nothing you can do but to have a Mac system. But the problem is you can not buy a Mac. The solution is either you can install OSX on Virtual Machine using VMWare. I used to install on VMWare numerous times, it help me much. But the problem is too much eat my resources and become heavy. Another way is to install OSX right onto your PC or laptop. Last time, i successfully installed OSX Lion on my AMD rig and a ATI Radeon connected to HDMI Cable. You should read it here in my blog also if you want.

This time i want to guide you to install Hackintosh OSX Mavericks on ASUS A46CB laptop from USB Drive / Flashdisk. ASUS A46CB / K46C Series is a great laptop with a decent specification. This laptop is medium gaming laptop. I choose this laptop because of this reason. While i am stuck on my programming code, i sometimes play online games, such as WarFare and DoTa 2. With graphics setting almost high-enabled, this laptop has nice graphic result.

Asus A46CB specification:

Processor: Intel Core i5 – 3337U, 1.8GHz

Dual graphics: Intel HD4000 and NVIDIA GEFORCE 740M

Memory: 8GB


HDD: 750GB

Now lets go with our installation.

First, we must prepare our weapon to install this. You need to have this before you go with this installation:

1. Flashdisk/USB Drive, with a minimum size 8GB or more.

2. Niresh Mavericks 10.9.0 image DMG file. You can download it from their official website. Why you need DMG file and not ISO file? Because you need this to make a bootable USB Drive / Flashdisk. Official site: http://www.niresh.co/hackintosh-downloads/file/75-niresh-mac-os-x-mavericks-109-with-amd-intel-usb/

3. Win32DiskImager to copy DMG file to USB Drive.

4. BACKUP YOUR DATA, we do not have responsibility if you loose your data during this Mavericks installation to your PC or Laptop. *Do it with your own risk*. I use My Book Studio from WD to backup my big data. It also compatible with Mac OS X as time machine backup.


Preparing USB Drive / Flashdisk

Plug in your USB Drive and format it. You can use any other Operating System to format. In this tutorial i use Windows. The idea is the same.

First you need to go to Disk Management tool. You can just type “partition” in Run window (press Windows button + R).

Format and name it as you want.
format usb hacktintosh tutorial 300x201 How to install Hackintosh OSX Mavericks on ASUS A46CB laptop from Flash Disk

Writing OSX image to USB Drive/Flashdisk

Once USB Drive have been formatted, next step is to copy OSX Mavericks DMG image into USB Drive. Run win32DiskImager , choose the image file and device. And press “Write” button. Wait till it finish.

Writing to USB Drive 300x152 How to install Hackintosh OSX Mavericks on ASUS A46CB laptop from Flash Disk

Once done, you are ready to start Mavericks installation. But, i remind you again to check and backup your data. *Do this with your own risk*


Starting Mavericks Installation

Go to your BIOS Setup. Please check your manual how to get into BIOS Setup. Make your 1st boot option to your flash disk/ USB Drive, save and exit, boot. If you follow the step above carefully, you will then get into bootloader window.


If there is no other OS detected, you will only see one option. Just enter (better to use -v bootflag to see if an error happen and what cause it).

To enter bootflag option, press any key while progress bar showing up.

Luckily, for my ASUS A46C Series didnot need any other bootflag option.

This is some bootflag combination if you have problem to enter the installation step try this one or more combination.

-v GraphicsEnabler=No

-v GraphicsEnabler=No npci=0x2000

-v npci=0×2000

-v cpus=1

-v PCIRootUID=0

-v -f

-v -f -x


Post on the comment below if you need any help, and post the error message.

Then, you will be brought to Mavericks installation window. Follow the instruction. Choose Niresh Mavericks.

install hackintosh mavericks asus a46c k46c bootloader 300x168 How to install Hackintosh OSX Mavericks on ASUS A46CB laptop from Flash Disk

install hackintosh mavericks asus a46c k46c welcome 300x168 How to install Hackintosh OSX Mavericks on ASUS A46CB laptop from Flash Disk

Preparing device to be installed OSX Mavericks. Choose Disk Utility.install hackintosh mavericks asus a46c k46c diskutility 300x168 How to install Hackintosh OSX Mavericks on ASUS A46CB laptop from Flash Disk

If you want to make more than 1 partition it is up to you. In this tutorial my laptop will only has Mac OSX only so i had it 2 partitions.

install hackintosh mavericks asus a46c k46c partition 300x168 How to install Hackintosh OSX Mavericks on ASUS A46CB laptop from Flash Disk

After that, choose the device target. The advantages of Niresh Mavericks Distro are you will not need to search and install kext for the approriate one for your laptop. Niresh Distro will handle that for you. They have bundled it with universal kext driver, that mostly run well. If your laptop specification is supported by OSX , then it will be much easier.

On below picture, there a customize button to customize your installation if you want. But the default option is fine.

install hackintosh mavericks asus a46c k46c choose target 300x168 How to install Hackintosh OSX Mavericks on ASUS A46CB laptop from Flash DiskWaiting the installation…

install hackintosh mavericks asus a46c k46c wait till done 300x168 How to install Hackintosh OSX Mavericks on ASUS A46CB laptop from Flash DiskOnce done, you will ask to restart. Press any key to restart or leave it to restart automatically in several seconds.

Go into BIOS and set your Boot Priority to your HDD again. Save and Exit.

You will then will see the chameleon bootloader as default bootloader.

install hackintosh mavericks asus a46c k46c bootloader boot from hdd 300x168 How to install Hackintosh OSX Mavericks on ASUS A46CB laptop from Flash DiskChoose boot from your HDD. In this case my HDD is OSXMavericks.

Include -v bootflag option to check if there is any error. Check some list of error on bottom of this tutorial.

Once any error has solved. You will then will be bring to welcome message. Follow the instruction to finish.

Done. You have hackintosh running smoothly in ASUS A46C series / K46C Series.

hackintosh asus a46cb screenshot 300x168 How to install Hackintosh OSX Mavericks on ASUS A46CB laptop from Flash Disk

Some Known Error / Kernel Panic and How To Solve it:

1. Stuck at IOBluetoothHCIController

You need to remove driver for Intel HD and Nvidia: AppleIntelHD* GeForce* NV*

Boot with -s bootflag

then you will bring to root terminal window


fsck -fy

mount -uw /

mkdir /Volumes/OSXMavericks/backupfolder

mv /Volumes/OSXMavericks/System/Library/Extensions/AppleIntelHD* /Volumes/OSXMavericks/backupfolder

mv /Volumes/OSXMavericks/System/Library/Extensions/NV* /Volumes/OSXMavericks/backupfolder

mv /Volumes/OSXMavericks/System/Library/Extensions/GeForce* /Volumes/OSXMavericks/backupfolder

touch /Volumes/OSXMavericks/System/Library/Extensions/



2. Blank Screen

It causes mostly by your VGA card. Start with GraphicsEnabler=No

That’s all the problem that i experienced. If you have any trouble to install it please post it below.

Next, i will post about post installation of Mac OS X Mavericks on Asus A46CB:

1. Enabling Intel HD 4000 full QE/CI enabled.

2. Disable Nvidia GeForce 740M so it can save battery more longer and reduce heat.

3. Fix Sound for ALC270 chipset


4 Easy Way How to Root Any Android Without PC

Rooting an Android device can sometimes take a long time and there is a need to use a computer. There have been many tutorials on the internet to root android device, but most devices discussed are famous brands only. So for android devices that are rarely used difficulty to re-root. Now I will share tips on how to quickly root android device without a computer.

Before you decide to root of course you have to know the risks if android already rooted.

– Warranty void, rooted device can be unroot again but the warranty depends on the vendor, if the device ever been rooted will void warranty.

– When you enter root mode means you have the full right to your android system, so be careful when experimenting with the system. Do not do things that you do not know well. If an error occurs the system must be ready to flash again. Or worst case, your device will be brick.

The advantages on rooted device are a lot of it, i.e can change the font, install custom ROMs, etc.

1. Framaroot

Framaroot is a one-click application that root android device without a computer. Framaroot developed by alephzain from XDA forum. Framaroot supports android version 2.0 Froyo to 4.x Jellybean. All android varian can be seen here: http://framaroot.net/devices.html

To download the apk file from their site: http://framaroot.net/ or here http://bit.ly/Snn8Z5

How to install:
1. Download Framaroot from our site
2. Run, choose Superuser or SuperSU
3. Select Boromir or another character
4. You will see icon smile 4 Easy Way How to Root Any Android Without PC
5. Reboot device
6. Root- installed

Framaroot Exploits 4 Easy Way How to Root Any Android Without PC


2. Rootmasters

Rootmasters is a one-click root application in devices such as Framaroot. Rootmasters is a product of developer Vroot. It could be said Vroot mobile version.

1. Download Rootmasters here or from this link: http://products.mgyun.com/api/downjump?id=764
2. Activate USB Debugging.
3. Install apk like usual.
4. Open Rootmasters wait till open and then press the green circle button.

rootmasters 300x300 4 Easy Way How to Root Any Android Without PC

5. Press the gear icon on the right upper corner. If ROOT Previleges active then root is successful.


3. Towelroot

Towelroot is the most easy root application. Android already supports Kitkat.

Download it here or direct link here: https://towelroot.com/tr.apk

towelroot 168x300 4 Easy Way How to Root Any Android Without PC


4. Key Root Master

Another alternative if you fail using above application.

1. Download Key Root Master apk
2. Install apk file as usual.
3. Activate USB Debugging, go to Settings > Developer options. For android 4.2 and above go to Setting > About phone > Tap build phone several times untul a notification popup as developer appear, then back to Settings > Developer option.
4. Open Key Root Master
5. Tekan tombol Root

key root master 118x300 4 Easy Way How to Root Any Android Without PC


Is iPhone 6 Technology Far Behind Android?

applevsandroid 300x130 Is iPhone 6 Technology Far Behind Android? iPhone 6 android 300x180 Is iPhone 6 Technology Far Behind Android?

Many pros and cons arise shortly after Apple officially announced the iPhone 6 and Apple Watch. Some praised, some are blasphemous. One of the interesting things emerging in social media, especially the path, namely the emergence of a picture that compares the iPhone 6 with the Google Nexus 4.

In the picture, it was concluded that the technology carried the iPhone 6 already stale and has been owned by the last Android device since 2012. Known, Nexus 4 which was released two years ago had already been using the 4.7-inch screen, high-resolution screens, NFC, and a handful of other things that the new iPhone 6 is currently owned.

Not only that, the picture is also a satire sentence which says that in the year 2016, possibly a new iPhone users will feel the wireless charging technology, water resistant, virtual buttons, and others. In fact, Android users already feel at this time. So, if later there is a new technology that is not understood by users of the iPhone, they can ask Android users.

In response to this, a loyal iPhone user that says also that the power of the hardware and technology is not the main thing Apple has to offer, but a function. Therefore, Apple is in no hurry to implement advanced technologies such as the resolution of 2K or tens of megapixel cameras, because the technology was not yet fully optimized and helpful.

In addition, Apple products also apply effectiveness, which owned the hardware and technology will be felt with the optimal number of quality applications which the majority is only available in the AppStore. Is this true? So, whether you are in the neutral or even favoring one of them?


Apple A8 Processor: 20 Nanometer-Chip is not Manufactured by Samsung

The A8 processor, that Apple installed in its new iPhone 6 and 6 Plus models is not manufactured by Samsung. The production has taken over by Taiwanese company TSMC (Taiwan Semiconductor Manufacturing Company). The website chipworks.com confirmed that has analyzed the new iPhone.

This confirmed reports from the beginning of 2014, in which was already announced that Apple processores will no longer be built by Samsung. From the Chipworks’s analysis also shows that the chip was produced in the 20-nanometer process. This brings more performance and less power consumption than of CPUs on the 28-nanometer method. Built on 89 mm2, it is 13 percent smaller than A7 (102 mm2). Apple claims up 50 percent more faster and 84 times at graphic than the previous A7 processor, while being 50 percent more energy efficient, that we hope will be more lasting batteries.

Apple A9: New iPhone Processor back manufactured by Samsung?

It is related to whether the cooperation between Samsung and Apple has ended, we can not be sure at this time. According to rumors, Samsung may already be working on the development of A9 processor at the 14-nanometer technology for future Apple models.

Samsung and GlobalFoundries have landed orders from Apple to produce the 14-nanometer A9 processor starting next year, as quoted from DigiTimes. The 14nm chips will be rolled out of GlobalFoundries’ Fab 8 factory in Malta, New York, which Samsung will also use to produce Apple’s A-series chips.

The report also notes that longtime Apple partner Taiwan Semiconductor Manufacturing Company (TSMC) will attempt to secure orders for Apple’s A9 chip by introducing new semiconductor processes by early next year. Apple is also reportedly considering Intel as a partner to produce the A9, according to the sources.

Last year, it was reported that Samsung and TSMC would be sharing production of Apple’s A9 chip in 2015, with the former producing 30% to 40% of the total order. Samsung and GlobalFoundries have aided each other throughout the past year, with Samsung helping set up the Fab 8 factory last year and GlobalFoundries providing the backup location when needed. Samsung and GlobalFoundries announced in April that they would be adopting the same chip production process to prepare for next-generation mobile devices..


Ouch, The First iPhone 6 Buyer Dropped It Accidentally

iPhone 6 went on sale in several countries, starting from Australia. Unfortunately the first iPhone 6 buyer in Perth’s city, he accidentally dropped the iPhone 6, which has just issued from the box.

Initially, the first purchaser named, Jack Coosey was interviewed by a television reporter. Jack was excited and immediately want to show off the iPhone 6 which was still in the packaging. But because the iPhone 6’s overzealous detached and plummeted to the pavement.

The surrounding people cheered it. While Jack looks panicked and immediately take the iPhone 6. He either checked in case there was damage.

“I dropped it because of panic and want to open it immediately. Luckily, it still covered with plastic, so my iPhone 6 was fine,” John said of the Mirror quoted on Friday (19/09/2014).

It looks like the iPhone 6 was not damaged. But since the drop of the position is quite high, there may be blisters on the casing. John also claimed to be more careful with his favorite gadgets.

“I can not wait to open it again, but of course not to drop it again,” he concluded.

Next time becareful dude.


Preparing Web Development Environment Using VAGRANT

As a developer, you maybe not work alone. Maybe you have a team with different expertise to develop something. But the development environment need to be the same to all developers, resulting the same result and perception. The problem is, the development environment of each developer maybe different. Some using windows, Mac OSX, or working under Linux. If in this case, there will be more work and cost. With vagrant that problem will be solved.

Vagrant was started and developed by Mitchell Hashimoto in Janury 2010 during his free-time after his full-time job. Since that, Vagrant grew to be trusted and used by a range of individual developer or a team developers in a large company.

Vagrant is a tool for building complete development environments. With an easy-to-use workflow and focus on automation, Vagrant lowers development environment setup time, increases development/production parity, and makes the “works on my machine” excuse a relic of the past. – http://www.vagrantup.com/about.html

So why you need Vagrant in WordPress Development?

  • No need to install web server
  • You can match the configuration of production server
  • Project isolation – setup one vagrant for one project
  • Version isolation – more than one version of WordPress
  • Works the same of PC/Linux

In this tutorial we will use Windows and VirtualBox to make WordPress Development Environment that is cross-platform compatible and can easily deployed to almost any environment.

Getting Started
To get started we need to install two programs,VirtualBox and Vagrant itself with a help from vagrant plugin.

Install VirtualBox
Install the latest version of your OS, in this case Windows from https://www.virtualbox.org/wiki/Downloads. After download completed, just run and follow the instruction to finish VirtualBox installation.
Do not forget to install VirtualBox Extension Pack. If you forget to install it, you will get this error message when you try to install vagrant plugin.

fork: retry: Resource temporarily unavailable

Install Vagrant
Download and install vagrant from http://www.vagrantup.com/downloads.html. Once installed, you need to install vagrant plugin “vagrant-hostsupdater” which will allow you to modify your host file for easy access for your VM.
To install type this in windows command line (with Administrator Rights) and wait for a moment to complete the installation:

>vagrant plugin install vagrant-hostsupdater

Launching you VM
Now we have to build our VM. Usually in normal installation you need to create your own Vagrantfile and do a lot custom Ruby scripting to get WordPress working properly. To simplifly the process, there is a script made by Trevor Maglione that will create WordPress vagrant setup for you. We recommend you to fork this repository from BitBucket then clone it to your computer.


>git clone [my-cloned repository] /desired-path-to-project/
>cd /desired-path-to-project/

Once done, you need to copy Vagrantfile.sample to just Vagrantfile and edit it as below:

Change the value from line 15 to the name of your project:

config.vm.hostname = 'myproject'

Starting Your VM
Now everything is set, go into your folder where your repository cloned. And run this in command line:

>vagrant up

Now you will see that Vagrant downloads a copy of Ubuntu. Currently it is using 12.04, the developer will be updating it to 14.04 in the near future. Vagrant then uses Puppet to install the required packages to run a fully functional WordPress site on a LEMP (Linux Nginx MySQL PHP5-FPM) stack. This process should take several minutes.
vagrant installation done 279x300 Preparing Web Development Environment Using VAGRANT

Thats it. Now go to your web browser and type the project url. Lets say for example in your Vagrantfile you named your project ‘myproject’ then type it to your web browser ‘http://myproject.dev/’. You will see WordPress installation screen. And you can start develop your own WordPress development.
vagrant install 300x159 Preparing Web Development Environment Using VAGRANT


Android Studio Tutorial: Adding versionName to Generated APK file

This is more feature what i love to develop android apps using Android Studio and Gradle. Adding a versionName after your generated APK filename will be much easier. Gradle will auto generate your APK filename ending with your version name.
i.e. Usually you will get this file name when generating a release APK: myapkfiles-release.apk and then by using this parameter you will get: myapkfiles-release-1.1.apk (1.1 is your versionName in your build.gradle).

Here is the code you need to add to your build.gradle in your buildtypes block:

applicationVariants.all { variant ->
                def file = variant.outputFile
                variant.outputFile = new File(file.parent, file.name.replace(".apk", "-" + defaultConfig.versionName + ".apk"))

The complete buildtypes block that i have:

buildTypes {
        release {
            runProguard true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            applicationVariants.all { variant ->
                def file = variant.outputFile
                variant.outputFile = new File(file.parent, file.name.replace(".apk", "-" + defaultConfig.versionName + ".apk"))
        debug {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
Menu Title