Secara default untuk menjalankan aplikasi XAMPP kita harus membuka melalui terminal command
$ sudo /opt/lampp/lampp start
Untuk membuatnya lebih mudah maka kita akan menjalankan XAMPP melalui GUI seperti pada windows

Berikut caranya

Install gksu dan gedit (jika belum ada)
$ sudo apt-get install gksu
$ sudo apt-get install gedit
Jika sudah lanjut tahap berikutnya (masih di terminal)
$ sudo gedit ~/.local/share/applications/xampp-control-panel.desktop
Ketika muncul editor, paste code dibawah ini lalu save dan close
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon[en_US]=/opt/lampp/htdocs/favicon.ico
Name[en_US]=XAMPP
Exec=gksu /opt/lampp/manager-linux-x64.run
Comment[en_US]=Start XAMPP Control Panel
Name=XAMPP
Comment=Start XAMPP Control Panel
Icon=/opt/lampp/htdocs/favicon.ico
Sekarang XAMPP Control Panel sudah bisa di akses melalui app launcher

Selamat mencoba
Error ini biasanya terjadi ketika kita membuat table menggunakan table builder dimana ada filed yang menggunakan type data ENUM

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '0) NULL DEFAULT blablablaaaahh


How to fix this error??

Open your phpMyAdmin folder > go to libraries > open Table.php

In thi case I use Laragon
C:\laragon\etc\apps\phpMyAdmin\libraries

Search for line 402



And change it like this



Code
        if ($length != '' && ! preg_match($pattern, $type)) {
          $lengthFix = str_replace(",", ".", $length);
          if($lengthFix != $length){
              $modified = true;
          }
          if(is_numeric($lengthFix)){
              if($modified){
                  $length = str_replace(".", ",", $lengthFix);
              }
              $query .= '(' . intval($length) . ')';
          } else {
              $query .= '(' . $length . ')';
          }
        }

Save and Restart your apache/mysql


Special thanks to bamz3r

https://cdn.elegantthemes.com/blog/wp-content/uploads/2014/01/user-roles-thumb.jpg

Pada kesempatan ini saya mau share bagaimana cara membuat hak akses user pada CodeIgniter dengan menggunakan banyak tabel. Sebagai contoh disini saya membuat dua buah tabel yaitu Admin dan Member.

Disini saya hanya akan menjelaskan point-point pentingnya saja, sisanya silahkan download source code yang sudah di sediakan di bawah.

Tabel Admin

CREATE TABLE `admin` (
  `admin_id` int(10) NOT NULL,
  `admin_user` char(30) NOT NULL,
  `admin_pass` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

ALTER TABLE `admin`
  ADD PRIMARY KEY (`admin_id`),
  ADD UNIQUE KEY `admin_user` (`admin_user`);

 Tabel Member

CREATE TABLE `member` (
  `member_id` int(10) NOT NULL,
  `member_user` char(20) NOT NULL,
  `member_pass` varchar(255) NOT NULL,
  `member_nama` varchar(255) NOT NULL,
  `member_alamat` text NOT NULL,
  `member_ttl` date NOT NULL,
  `member_email` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

ALTER TABLE `member`
  ADD PRIMARY KEY (`member_id`),
  ADD UNIQUE KEY `member_user` (`member_user`);

Buat file Controller Utama - C_Main

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class C_Main extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->model('M_Main');
}
public function index()
{
//Check session
if($this->session->userdata('admin_user'))
{
$this->load->view('admin/V_dashboard');
}
elseif($this->session->userdata('member_user'))
{
$this->load->view('member/V_dashboard');
}
else
{
$this->load->view('V_Login');
}
}
public function login()
{
$username  = $this->input->post('username');
$password  = md5($this->input->post('password'));
$cek_admin = $this->M_Main->get_admin($username,$password);
$cek_member = $this->M_Main->get_member($username,$password);
if($cek_admin->num_rows() == 1)
{
foreach($cek_admin->result_array() as $row)
{
$pass_auth = $row['admin_pass'];
if($password == $pass_auth)
{
$row_data = array(
'admin_id' => $row['admin_id'],
'admin_user' => $row['admin_user']
);
$this->session->set_userdata($row_data);
redirect('admin/C_Admin');
}
else
{
//if wrong password
$this->load->view('V_Login');
}
}
}
elseif($cek_member->num_rows() == 1)
{
foreach($cek_member->result_array() as $row)
{
$pass_auth = $row['member_pass'];
if($password == $pass_auth)
{
$row_data = array(
'member_id'   => $row['member_id'],
'member_user' => $row['member_user']
);
$this->session->set_userdata($row_data);
redirect('member/C_Member');
}
else
{
//if wrong password
$this->load->view('V_Login');
}
}
}
else
{
//if wrong username
$this->load->view('V_Login');
}
}
    public function logout(){
        $this->session->unset_userdata('admin_id');
        $this->session->unset_userdata('admin_user');
        $this->session->unset_userdata('member_id');
        $this->session->unset_userdata('member_user');
        redirect(site_url(''));
    }
}

Buat file Model Utama - M_Main

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class M_Main extends CI_Model
{
public function get_admin($username,$password)
{
$query = $this->db->query("SELECT * FROM admin WHERE admin_user='$username' AND admin_pass='$password' ");
return $query;
}
public function get_member($username,$password)
{
$query = $this->db->query("SELECT * FROM member WHERE member_user='$username' AND member_pass='$password' ");
return $query;
}
}

Untuk melakukan cek session pada setiap controller, kita membutuhkan sebuah file helper. Maka buatlah file pada folder application/helpers


sessions_helper.php

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
function admin_logged_in()
{
    $CI =& get_instance();
    $is_logged_in = $CI->session->userdata('admin_user');
    if(!isset($is_logged_in) || $is_logged_in != true)
    {
        redirect('C_Main');
    }    
}
function member_logged_in()
{
    $CI =& get_instance();
    $is_logged_in = $CI->session->userdata('member_user');
    if(!isset($is_logged_in) || $is_logged_in != true)
    {
        redirect('C_Main');
    }
}

Lalu buka file autoload.php pada folder application/config dan ubah bagian helper menjadi seperti ini


$autoload['helper'] = array('url','form','sessions');


Nanti di setiap Controller baik Admin maupun Member tambahkan helper session tadi untuk melakukan pengecekan user yang login

Controller Admin - C_Admin

class C_Admin extends CI_Controller
{
public function __construct()
{
parent::__construct();
admin_logged_in();
}


Controller Member - C_Member

class C_Member extends CI_Controller
{
public function __construct()
{
parent::__construct();
member_logged_in();
}


Selesai.. bagaimana mudah bukan?

Untuk source codenya silahkan buka Github saya klik disini

Selamat mencoba




1) Buat file library cipher.php dengan isi seperti berikut
<?php
/**
 * Cipher
 *
 * Simple mcrypt interface.
 *
 * Cipher is a simple class for working with mcrypt.
 *
 * @package     Cipher
 * @author      Nathan Lucas <nathan@gimpstraw.com>
 * @link        http://www.gimpstraw.com/
 * @copyright   Copyright (c) 2008, Nathan Lucas
 * @version     2.0.0
 *
 * Added $iv to both encrypt() and decrypt() allowing you to use preset IVs
 * while encrypting/decrypting data.
 *
 * Also added getIV(), which returns the instance's current IV in base64
 * allowing you to store this IV for use on other instances of Cipher.
 */
class Cipher {

    /**
     * Algorithm to use.
     *
     * @access  private
     * @var     string
     */
    private $algo;

    /**
     * Encryption mode.
     *
     * @access  private
     * @var     string
     */
    private $mode;

    /**
     * Randomization source.
     *
     * @access  private
     * @var     integer
     */
    private $source;

    /**
     * Initialization vector.
     *
     * @access  private
     * @var     string
     */
    private $iv = null;

    /**
     * Encryption key.
     *
     * @access  private
     * @var     string
     */
    private $key = null;

    /**
     * Cipher($algo, $mode, $source)
     *
     * Cipher constructor. Sets the algorithm being used, the encryption
     * mode, and the IV.
     *
     * @param   string $algo
     * @param   string $mode
     * @param   integer $source (randomization source)
     * @access  public
     * @return  void
     */
    public function __construct($algo = MCRYPT_3DES, $mode = MCRYPT_MODE_CBC, $source = MCRYPT_RAND) {
        $this->algo = $algo;
        $this->mode = $mode;
        $this->source = $source;

        if (is_null($this->algo) || (strlen($this->algo) == 0)) {
            $this->algo = MCRYPT_3DES;
        }
        if (is_null($this->mode) || (strlen($this->mode) == 0)) {
            $this->mode = MCRYPT_MODE_CBC;
        }
    }

    /**
     * encrypt($data, $key, $iv)
     *
     * Returns encrpyted $data, base64 encoded. $key must be specified at
     * least once, it can be changed at any point.
     *
     * @param   string $data
     * @param   mixed $key
     * @param   string $iv
     * @access  public
     * @return  string
     */
    public function encrypt($data, $key = null, $iv = null) {
        $key = (strlen($key) == 0) ? $key = null : $key;

        $this->setKey($key);
        $this->setIV($iv);

        $out = mcrypt_encrypt($this->algo, $this->key, $data, $this->mode, $this->iv);
        return base64_encode($out);
    }

    /**
     * decrypt($data, $key, $iv)
     *
     * Returns decrypted $data. $key must be specified at least once, it can
     * be changed at any point.
     *
     * @param   mixed $data
     * @param   mixed $key
     * @param   string $iv
     * @access  public
     * @return  string
     */
    public function decrypt($data, $key = null, $iv = null) {
        $key = (strlen($key) == 0) ? $key = null : $key;

        $this->setKey($key);
        $this->setIV($iv);

        $data = base64_decode($data);
        $out = mcrypt_decrypt($this->algo, $this->key, $data, $this->mode, $this->iv);
        return trim($out);
    }

    /**
     * getIV()
     *
     * Returns the IV used for encryption so you can use it again in another
     * Cipher instance to decrypt data.
     *
     * @access  public
     * @return  string
     */
    public function getIV() {
        return base64_encode($this->iv);
    }

    /**
     * setIV($iv)
     *
     * Sets IV. If $iv is specified, the instance IV will be set to this. If not,
     * the instance will generate an IV.
     *
     * @param   string $iv
     * @access  private
     * @return  void
     */
    private function setIV($iv) {
        if (!is_null($iv)) {
            $this->iv = base64_decode($iv);
        }
        if (is_null($this->iv)) {
            $iv_size = mcrypt_get_iv_size($this->algo, $this->mode);
            $this->iv = mcrypt_create_iv($iv_size, $this->source);
        }
    }

    /**
     * setKey($data, $key)
     *
     * Sets Cipher::key. This will be the key used for the encrypt and decrypt
     * methods until another $key is specified. This will trigger an error if
     * no initial key is set.
     *
     * @param   mixed $key
     * @access  private
     * @return  void
     */
    private function setKey($key) {
        if (!is_null($key)) {
            $key_size = mcrypt_get_key_size($this->algo, $this->mode);
            $this->key = hash("sha256", $key, true);
            $this->key = substr($this->key, 0, $key_size);
        }
        if (is_null($this->key)) {
            trigger_error("You must specify a key at least once in either Cipher::encrpyt() or Cipher::decrypt().", E_USER_ERROR);
        }
    }
}
?>

2)  Misal digunakan untuk membuat user baru maka penggunaannya seperti berikut

a. Buat file form untuk menambahkan user
<form method="post" action="create_user.php">
<input type="text" name="username" required>
<input type="password" name="password" required>
<button type="submit" name="add_user">Tambah User</button>
</form>
b. Buat file action create_user.php 
<?php
 include 'koneksi.php'; //ganti dengan file koneksi anda
 require_once("cipher.php");
 $cipher = new Cipher(MCRYPT_BLOWFISH, MCRYPT_MODE_ECB);
 $key   = "%^$%^&%*UBAHDISINI";
 $username = $_POST['username'];
 $password = $cipher->encrypt($_POST['password'], $key);
 if(isset($_POST['add_user'])){
  $query = mysqli_query($conn,"INSERT INTO tb_user VALUES('$username', '$password')");
    if($query){
   echo "Berhasil Tambah User";
  }
  else{
   echo "Gagal Tambah User";
  }
 }
?>

*Pada bagian UBAHDISINI bisa diganti dengan KEY yang diinginkan, misal QWERT123  atau 94XYZ dsb.


3) Misal digunakan untuk form login maka penggunaannya seperti berikut

a. Buat file form untuk login
<form method="post" action="login_proses.php">
<input type="text" name="username" required>
<input type="password" name="password" required>
<button type="submit">Login</button>
</form>

b. Buat file login_proses.php
<?php
@session_start();
include 'koneksi.php'; //ganti dengan file koneksi anda
require_once("cipher.php");
$cipher = new Cipher(MCRYPT_BLOWFISH, MCRYPT_MODE_ECB);
$key   = "%^$%^&%*UBAHDISINI";
$username = $_POST['username'];
$password = $cipher->encrypt($_POST['password'], $key);
if($username&&$password) {
$get_user = mysqli_query($conn,"SELECT * FROM tb_user WHERE username='$username'");
$cek_user = mysqli_num_rows($get_user);
if($cek_user!=0){
while($row = mysqli_fetch_assoc($get_user)){
$dbusername = $row['username '];
$dbpassword = $row['password'];
}
if($username==$dbusername&&$password==$dbpassword){
$_SESSION['username']=$username;
header("location:/dashboard.php");
}
else{
header("location:/login.php");
}
}
?>

4) Selanjutnya kode tersebut tinggal di terapkan pada sistem yang kamu buat

Selamat mencoba!

Disini dimisalkan sebuah sistem yang memiliki 3 level user berbeda.

Contoh:
 - Admin
 - Dosen
 - Mahasiswa


1) Pertama buat halaman loginnya

<h1> FORM LOGIN </h1>
<form action="proses_login.php" method="post">
<input type="text" name="username" required>
<input type="password" name="password" required>
<button type="submit">LOGIN</button>
</form>

2) Lalu buat file actionnya (proses_login.php)
<?php
@session_start();
include 'koneksi.php'; //ganti dengan koneksi database anda
$username = $_POST['username'];
$password = $_POST['password'];
if($username&&$password){
//cek data admin
$get_admin = mysqli_query($conn,"SELECT * FROM tb_admin WHERE user_admin='$username'");
$cek_admin = mysqli_num_rows($get_admin);
if($cek_admin!=0){
while($row = mysqli_fetch_assoc($get_admin)){
$dbusername = $row['user_admin'];
$dbpassword = $row['pass_admin'];
}
if($username==$dbusername&&$password==$dbpassword){
$_SESSION['user_admin']=$username;
header("location:./admin/dashboard");
}
else{
header("location:/index.php");
}
}
//jika data admin tidak ada, cek data dosen
else{
$get_dosen = mysqli_query($conn,"SELECT * FROM tb_dosen WHERE user_dosen='$username'");
$cek_dosen = mysqli_num_rows($get_dosen);
if($cek_dosen!=0){
while($row = mysqli_fetch_assoc($get_dosen)){
$dbusername = $row['user_dosen'];
$dbpassword = $row['pass_dosen'];
}
if($username==$dbusername&&$password==$dbpassword){
$_SESSION['user_dosen']=$username;
header("location:./dosen/dashboard");
}
else{
header("location:/index.php");
}
}
//jika data dosen tidak ada, cek data mahasiswa
else{
$get_mhs = mysqli_query($conn,"SELECT * FROM tb_mhs WHERE user_mhs='$username'");
$cek_mhs = mysqli_num_rows($get_mhs);
if($cek_mhs!=0){
while($row = mysqli_fetch_assoc($get_mhs)){
$dbusername = $row['user_mhs'];
$dbpassword = $row['pass_mhs'];
}
if($username==$dbusername&&$password==$dbpassword){
$_SESSION['user_mhs']=$username;
header("location:./mahasiswa/dashboard");
}
else{
header("location:/index.php");
}
}
}
}
}
else{
header("location:/index.php");
}
?>

3) File proses_login.php tersebut melakukan cek satu-persatu menggunakan IF-ELSE sederhana
kamu bisa menambahkan lagi sesuai jumlah kebutuhan hak akses dengan cara yang sama

4) Selanjutnya kode tersebut tinggal di terapkan pada sistem yang kamu buat

Selamat mencoba!



Perbandingan key spesification yang didapat dari ASUS press yang Live pada tanggal 30 Mei 2016 di http://press.asus.com/events/Computex/2016/

Zenfone 3
Zenfone 3 Deluxe
Zenfone 3 Ultra
·     Front and Rear 2.5D Corning Gorilla Glass
·     16MP Camera/0.03s TriTech AF
·     4 Axis OIS & 3 Axis EIS
·     Up to 4GB of RAM
·     Invisible Antenna Design
·     Snapdragon 820 Series
·     6GB RAM
·     Super AMOLED
·     23MP Camera with 0.03s TriTech AF
·     4 Axis OIS & 3 Axis EIS
·     Invisible Antenna Design
·     6.8” Display with Tru2Life+
·     23MP Camera with 0.03s TriTech AF
·     Dual Stereo speakers
·     Hi-Res Audio + DTS Headphone:X
Starting from $249 USD (3GB/32GB)

Starting from $499 USD (6GB/64GB)

Starting from $479 USD (4GB/64GB)


untuk lebih detailnya bisa lihat tabel dibawah



Bagaimana? tertarik untuk membelinya?
Ok setelah sebelumnya berhasil menginstall Remix OS, selanjutnya tinggal kita install deh Google Apps Servicenya, ya gunanya tidak lain agar dapat mengunduh aplikasi lewat playstore (biar kayak perangkat android pada umumnya gitu)

Tampilan Playstore di Remix OS

Langsung aja deh berikut langkah-langkahnya:

1) Pastikan kamu gunakan Remix OS nya langsung biar ga ribet

2) Download GMSInstaller.apk disini

3) Lalu install deh, jangan lupa pengaturan instalasi via Unknown Sources nya di aktifkan dulu ya kalau di block

4) Lalu buka Aplikasi tsb, dan klik pada pilihan "One-click to install Google Services"

5) Aplikasi tsb secara otomatis mendownload dan  menginstall Google Play Services kedalam Remix OS kalian. *oh ya, harus konek internet lho, cari Wife eh WiFi dulu sana :D

6) Jika sudah sabar dulu karena belum bisa download langsung dari playstore, nah silahkan masuk ke menu Settings > Aplication, lalu kalian clear all data pada Google Play Services dan Google Services Framework dan juga Google Play Store

7) Jika sudah restart lagi Remix OS nya

8) Lalu kalian buka Playstore dan setelah Login dengan akun Google pertama-tama cari Google Play Services dan lakukan update terlebih dahulu

9) Syukurlah kalau langsung download bisa tanpa error, tapi bila muncul error lakukan lagi langkah ke-6 dan ke-7
*saya sendiri mengulang hingga 3x baru bisa berjalan lancar Play Store nya -_-

Oke, selamat mencoba :)

Oke pada postingan sebelumnya kita telah membahas sekilas mengenai interface dari Remix OS, kali ini agar tidak penasaran dan bisa mencobanya langsung, maka akan saya share cara menginstall Remix OS pada PC/notebook kita.

Langsung saja berikut langkah-langkahnya:

1) System requirements yang dibutuhkan ialah:
+ CPU yang kompatibel dengan arsitektur 64-bit

+ USB Flashdisk yang telah di format FAT32 dengan kapasitas minimal 8Gb (lebih diutamakan menggunakan USB 3.0 dan direkomendasikan memiliki kecepatan Write sekitar 20Mb/s)



Centang bagian I am a developer and have read the above message.
Lalu klik tombol Download pada pilihan Remix OS (Legacy)

3) Setelah selesai, extract file .zip nya kedalam satu folder
Tancapkan flashdisk lalu jalankan remixos-usb-tool-B2016011401.exe
pilih file .iso dari Remix OS yang telah di extract tadi, lalu klik OK


4) Tunggu hingga proses selesai, jika sudah silahkan restart PC kamu (tanpa mencabut USB Flashdisk nya)

5) Lalu masuk menu pengaturan BIOS (biasanya Tekan F2)

6) Atur prioritas Boot sehingga USB Flashdisk tadi berada di urutan teratas

7) Jika sudah Save and Exit

8) Akan terdapat dua pilihan yakni
- Resident mode : Menjalankan Remix OS sebagai Portable OS, semua perubahan baik data, aplikasi, dsb akan tersimpan
- Guest mode : Menjalankan Remix OS sebagai Live OS, tidak akan ada data yang tersimpan

9) Disini saya memilih Resident mode. Lalu Remix OS akan melakukan Instalasi secara otomatis, tunggu hingga muncul tampilan Setup sebagai berikut, dan selesaikan setup nya hingga masuk tampilan desktop

10) Jika sudah masuk Desktop artinya kamu sudah dapat melakukan apapun dengan Remix OS ini

Selamat mencoba :)

Untuk cara install atau menambahkan Google Apps Service pada Remix OS ini, silahkan disimak pada postingan selanjutnya.

Pada tanggal 14 Januari 2016 salah satu pengembang mantan Google engineer yakni Jide Technology akhirnya merilis OS Android besutan mereka yang dikenal dengan sebutan Remix OS.

Meski OS yang telah dirilis ini masih dalam tahap pengembangan (alpha version) namun setelah saya coba ternyata hasilnya cukup memuaskan, beberapa fitur standar yang biasa kita temukan di perangkat smartphone maupun tablet berbasis Android dapat berjalan dengan sempurna.

Hanya saja untuk menjalankannya membutuhkan USB Flashdisk (pendrive)  dengan kecepatan Read & Write yang cukup mumpuni, terutama USB v3 lebih disarankan.

Penasaran bagaimana tampilan dari Remix OS tersebut? Beginilah tampilannya!

1) Berikut tampilan Setup saat pertama kali Remix OS dijalankan





2) Lalu inilah tampilan Desktop atau kalau di Android lebih dikenal dengan tampilan Homescreen

3) Ini tampilan Menu, atau biasa disebut dengan App Drawer

4) Lalu ini tampilan Notification bar

5) Selanjutnya tampilan Settings menu seperti ini



6) Lalu tampilan File Manager seperti ini


Lalu apakah kita bisa menginstall aplikasi Android (.apk) pada Remix OS ini?
YA, jelas bisa, karena Remix OS ini pun sama seperti android lainnya, hanya saja Remix OS di kembangkan berdasar project Android-x86

Hanya saja belum tertanam Google App Services pada Remix OS ini jadi kita tidak bisa mengunduh aplikasi melalui Play Store layaknya smartphone/tablet android pada umumnya

Namun jangan khawatir, berterimakasih lah karena salah satu member dari forum xda-developers telah memberikan sebuah tutorial bagaimana agar kita dapat menginstall Google Apps Service pada Remis OS ini..

Ingin tahu cara installnya? simak dipostingan berikut ini ya :) 
DISCLAIMER:
* Tutorial ini telah diuji menggunakan device Zenfone Selfie ZD551KL (Z00UD) dengan firmware versi 
WW_1.14.40.695 &  WW_1.15.40.1023*
* Saya tidak bertanggung jawab apabila ada hal-hal yang tidak diinginkan terjadi dengan smartphone anda! *
* Saya hanya menshare ulang apa yg sudah berhasil dilakukan dan 100% dengan cara yang serupa dengan tutorial ini *
Terima kasih :)


Berikut langkah-langkahnya:

1. Pastikan semua driver sudah terinstall di PC kamu
untuk mengecek silahkan download yang di langkah ke-2,
extract semua file kedalam satu folder,
lalu buka CMD pada direktori tsb (tekan tombol Shift lalu klik kanan, pilih Open command window here)

dan ketikkan perintah
adb devices (lalu enter)

jika muncul
List of devices attached
FAAZCY34X494    device 

Maka sudah berhasil, tinggal lanjut ke langkah selanjutnya
(*Kode FAAZCY34X494 akan berbeda-beda)

Jika masih belum bisa juga silahkan gunakan “PdaNet+” (Googling sendiri ya mas bro)

2. Next, Download flasthtool HERE

3. Download pre-rooted firmware HERE
    *Cari folder yang sesuai dengan firmware yg diinginkan
   **Download beberapa file dari folder common dan full yang ditandai merah 
          aboot.mbn | boot.img | modem.bin recovery.img | system.img.7z.001 - system.img.7z.006

untu file system.img.7z.001 - system.img.7z.006 silahkan di extract/join menggunakan aplikasi WinRar atau 7z

*perbedaan FULL dengan SLIM
FULL : Aplikasi persis seperti firmware official
SLIM : Lebih sedikit aplikasi Google nya, dan sudah terinstall Xposed jadi tinggal pakek
masalah performa = SAMA SAJA





4. Extract flashtool dan patched firmware kedalam satu folder, sehingga seperti berikut



5. Tekan Shift pada keyboard lalu klik kanan pilih   Open command window here


6. Sambungkan HH ke PC, pastikan mode USB debugging sudah ON
*Settings -> Developer options -> USB debugging -> check

7. Kembali ke CMD ketikkan
adb devices      (enter)  -> mengecek kembali apakah HH sudah connect dengan PC
adb reboot bootloader (enter)

8. Lihat bagian atas layar HH, apakah ada tulisan fasboot mode atau tidak? Jika ada maka kembali ke CMD

9. Ketikkan
fastboot erase cache (enter, tunggu hingga ada tulisan finished)
fastboot flash boot boot.img (enter, tunggu hingga ada tulisan finished)
fastboot flash recovery recovery.img (enter, tunggu hingga ada tulisan finished)
fastboot flash modem modem.bin (enter, tunggu hingga ada tulisan finished)
fastboot flash aboot aboot.mbn (enter, tunggu hingga ada tulisan finished)
fastboot flash system system.img (enter, tunggu cukup lama hingga ada tulisan finished)


10. DONE! Jika sudah langkah terakhir ketikkan
fastboot reboot (enter)

11. Maka HH akan me-restart dengan sendirinya.
Silahkan cabut HH dr PC, tunggu restart nya akan meload satu aplikasi yakni SuperSU

12. Silahkan download Root Checker di Playstore untuk mengecek keberhasilan proses ROOT nya



SELAMAT MENCOBA :)


REMEMBER, ALWAYS DWYOR (Do With Your Own Risk) !!


Written by Agung Pambudi. Copyright © “Everything you Want”. All right reserved.

DO NOT COPY-PASTE TO YOUR SITE WITHOUT OUR PERMISSION!

JUST GET OFF FOR PLAGIATOR!