Category Archives

356 Articles
CPU_FLAGS_X86 introduction

CPU_FLAGS_X86 introduction

The USE flags corresponding to the instruction sets and other features specific to the x86 (amd64) architecture are being moved into a separate USE flag group called CPU_FLAGS_X86. In order not to lose CPU-specific optimizations, users will be required to update their make.conf (and package.use) file. For example, if the following USE flags were present: USE=”mmx mmxext sse sse2 sse3″ Those flags need to be copied into: CPU_FLAGS_X86=”mmx mmxext sse sse2 sse3″ Please note that the same CPU_FLAGS_X86 variable is used both on x86 and amd64 systems. When in doubt, you can consult the flag descriptions using one of the commonly available tools, e.g. `equery uses` from gentoolkit: $ equery uses media-video/ffmpeg Most of the flag names match /proc/cpuinfo names, with the notable exception of SSE3 which is called ‘pni’ in /proc/cpuinfo (please also do not confuse it with distinct SSSE3). To help users enable the correct USE flags, we are providing a Python script that generates the correct value using /proc/cpuinfo. It can be found in the app-portage/cpuinfo2cpuflags package: $ emerge -1v app-portage/cpuinfo2cpuflags $ cpuinfo2cpuflags-x86 In order to ensure safe migration and maintain compatibility with external repositories, it is recommended to preserve the old USE settings for a period of one year or until no package of interest is still using them.

PS: This is a verbatim copy of a reminder in ESELECT NEWS. I take it to this blog as a reminder for myself in the future.

Memperbaharui Samsung Galaxy Grand Duos i9082

PENULIS TIDAK BERTANGGUNG JAWAB ATAS KERUSAKAN YANG TERJADI. PANDUAN INI DAPAT MEMATIKAN GARANSI ANDA (kalau pun masih ada garansi).

RISIKO TANGGUNG SENDIRI!

Saya dipinjami teman sebuah telepon Samsung Galaxy Grand Duos i9082. Seperti pada perangkat Samsung umumnya, telepon ini menggunakan Touchwiz. Beliau ingin memperbaharui perangkat ini. Ya, wajarlah. Touchwiz sangat memberatkan sistem. Apalagi untuk perangkat satu ini yang mulai uzur.

Kalau saya lihat spesifikasi perangkat ini, perangkat ini adalah seperti Raspberry Pi dengan dua prosesor. Sama-sama menggunakan BCM VideoCore IV sebagai grafis. RAM yang terbaca sekitar 832MB. Jadi, mungkin sekitar 192MB memori digunakan untuk video. Cukup, sih, untuk memasang video Full HD 1080p.

Saatnya mengganti dengan ROM yang enteng!

Setelah beberapa hari bersemedi di XDA, saya menemukan ROM yang optimal:

AOGP adalah ROM terakhir yang masih aktif dikembangkan untuk perangkat ini; yang lainnya aktif di 2013 dan awal 2014. AOGP menggunakan CyanogenMod 11 (CM11) sebagai basis. Beberapa modifikasi penting dia lakukan seperti mengaktifkan Dual SIM. Biasanya, produk-produk AOSP tidak mendukung Dual SIM.

Memasang Recovery Termodifikasi

Sumber bacaan: [Ultimate Guide] Installing / Rooting / Self-Customizing Stock Rom 4.2.2 / 1 [13/08]

Yang paling saya sebal dari proses ini adalah proses ini menggunakan sistem operasi Windoze. Hal ini karena ODIN hanya berjalan di sistem operasi tersebut. Memang, ada Heimdall yang bisa berjalan di GNU/Linux. Saya sudah mencobanya. Tapi, berhubung saya lagi baik karena menjelang Natal, saya tuliskan saja versi menggunakan Windoze.

Oh, iya, pastikan USB Debugging dinyalakan. USB Debugging ada dari menu Pengembang. Kalau belum ada menu Pengembang, nyalakan dari menu About device lalu menekan beberapa kali versi Build Number.

Perangkat Lunak yang diperlukan

Berikut perangkat lunak yang diperlukan.

  1. Pasang Penggerak USB Samsung. Cara paling gampang adalah memasang perangkat lunak KIES. Kalau di GNU/Linux, memasang Heimdall sudah memasang aturan UDEV juga.
  2. Saya mengunduh ODIN versi 2.07 dari thread ini. Cukup diekstraksi dan Odin3 siap digunakan.
  3. Saya menggunakan recovery termodifikasi dari Philz Touch. Saya mengunduh philz_touch_6.19.3-i9082.tar.md5. Format .tar.md5 adalah format yang diketahui oleh Odin3.

Yak, cukup tiga itu. Silakan pastikan bahwa perangkat terdeteksi. Berhubung PC teman saya pernah digunakan untuk perangkat Samsung lainnya, perangkat ini langsung terdeteksi. Sepertinya Penggerak USB Samsung dibuat untuk semua perangkat Android dia.

Pemasangan

ODIN flashing recovery image. (Source: XDA)

ODIN flashing recovery image. (Source: XDA)

Caranya:

  1. Matikan perangkat. Dari keadaan mati, pencet tombol Volume Turun + Home + Power bersamaan. Kombinasi tombol ini membuat perangkat masuk ke Mode Unduhan (Download Mode).
  2. Pastikan KIES atau peramban berkas tidak berjalan. Setelah yakin tidak ada aplikasi yang dapat mengambil alih telepon, jalankan ODIN dengan Run As Administrator.
  3. Setelah perangkat di Mode Unduhan dan ODIN sudah menyala, hubungkan kabel USB dari PC ke perangkat. Kalau terhubung, bagian awal batang akan berwarna hijau dan log berisi Added!
  4. Pastikan Auto Reboot dan F. Reset Time tercentang. Pilihan Auto Reboot akan menyalakan ulang perangkat ketika sudah selesai. Pilihan F. Reset Time akan melakukan Factory Reset, alias menghapus konfigurasi yang ada. Pilihan F. Reset Time itu yang paling penting harus dicentang!
  5. Klik tombol PDA dan pilih berkas philz_touch_6.19.3-i9082.tar.md5 yang kita unduh tadi.

Kalau tidak ada aral melintang, seharusnya Pada layar log pesan ada tulisan: PASS. Kalau Auto Reboot dinyalakan, perangkat akan otomatis menyala ulang. Saatnya ke hidangan utama.

Memasang ROM AOGP 4.4.4

Unduh beberapa berkas berikut:

Taruh itu semua di perangkat. Bisa di penyimpan internal atau penyimpan eksternal. Terserah, yang penting ingat saja di mana ditaruh berkas-berkas tersebut. Oh, iya, kalau pakai sideload, berkas-berkas tersebut tidak perlu ditaruh di perangkat.

Masuklah ke mode Recovery. Cara manual adalah dengan mematikan perangkat lalu tekan

Selanjutnya pemasangan saya asumsikan menggunakan Philz Recovery. Karena ini sudah berulang kali saya lakukan pada artikel LG G2, maka untuk kemalasan saya menghemat waktu, saya berikan langkah-langkah singkat saja. Silakan cari artikel sejenis di blog ini yang lebih detail.

  1. Lakukan Factory Reset. Langkahnya secara berurutan.
    • Wipe Data/Factory Reset
    • Clean to Install a New ROM
    • Yes, I will install a new ROM
  2. Pasang ROM AOGP.
  3. Pasang Google Play
    • Install Zip
    • Choose Zip from /sdcard
    • gapps-kk-20140105-signed.zip
    • Yes – Install gapps-kk-20140105-signed.zip
  4. Pasang SuperSU
    • Install Zip
    • Choose Zip from /sdcard
    • UPDATE-SuperSU-v2.37.zip
    • Yes – Install UPDATE-SuperSU-v2.37.zip
  5. Nyalakan ulang perangkat.
    • Reboot System Now

Catatan, kalau ada di eksternal, jangan pilih “Choose Zip from /sdcard”, tapi pilih direktori yang satu lagi.

Kalau saya, sih, menggunakan GNU/Linux menggunakan sideload. Itu sebabnya, saya pilih Install zip from sideload. Lalu, pada terminal di PC saya, saya lakukan perintah ini:

adb sideload <NAMA_BERKAS>

untuk ketiga berkas itu. Contohnya:

adb sideload UPDATE-SuperSU-v2.37.zip

Enaknya sideload, tidak perlu menaruh berkas di perangkat, cukup jalankan dari terminal.

Beberapa Langkah Tambahan Setelah Masuk Pertama Kali

Ada beberapa hal yang harus dilakukan setelah masuk ke dalam ROM untuk pertama kali. Yang paling standar memasukkan ID Google Anda. Setelah itu, ditanyakan untuk masuk ke ID CyanogenMod Anda. Kedua proses ini bisa dilewati. Tapi, kalau mau memasang aplikasi dari Google Play, sebaiknya ID Google diisi.

Setelah selesai proses registrasi tadi, ada satu langkah kecil yang diperlukan untuk mengaktifkan tombol-tombol yang ada di bawah (MENU, HOME, BACK).

  1. Masuk ke:
    • Settings
    • Buttons
  2. Hilangkan centang pada Hardware key option for hardware keys to work. Ketiga tombol akan mati.
  3. Centang kembali Hardware key option for hardware keys to work. Ketiga tombol akan kembali menyala.
  4. Selesai.

Sampai proses ini Anda sudah mendapati Samsung Galaxy Grand Duos I9082 yang telah berfungsi. Selesai.

Proses yang Kelupaan

Iya, saya ada satu proses yang kelupaan, yakni memasang radio. Saya hampir tidak pernah menggunakan fitur ini. Tapi, yang kalau mau, silakan unduh APK Spirit1 dari thread ini. Caranya ada di pos #4.

Saya belum mencobanya karena sudah kepalang saya kembalikan perangkatnya.

Terakhir

Selamat mencoba. Terlampir hasil tangkapan layar. Maaf, ya, ini sudah memakai tematik beda, tapi saya lupa apa. Saya juga sudah memasang Google Chrome Beta.

Memasang Pustaka Teroptimasi untuk LG G2
Super Android, recharge!

Memasang Pustaka Teroptimasi untuk LG G2

PERHATIAN:

BIONIK DAN DALVIK YANG ADA PADA TUTORIAL INI HANYA UNTUK STOK DAN ROM TERMODIFIKASI YANG DIBUAT DARI STOK.

JANGAN GUNAKAN PUSTAKA-PUSTAKA INI UNTUK AOSP! (CyanogenMod dan sejenisnya)

Sumber bacaan: [Mod] [Nexus 5] Dalvik+bionic library optimization – Flashable

Saya sebenarnya sudah menjelaskan pada tulisan sebelum ini. Saya akan coba jelaskan lebih lengkap. Terutama alasan mengapa ini perlu.

Karena pustaka Android itu Kode Sumber Terbuka (Open Source Software) dan bukan Perangkat Lunak Bebas (Free Software), semua orang bisa saja mendistribusikan binari tanpa menyertakan kode sumber. Dalam hal ini, Qualcomm sebagai penyedia keping untuk perangkat Android dan beberapa pabrik menyediakan binari yang terkompilasi secara optimal untuk perangkat buatannya. Untungnya, karena ini Android, pustaka binari tersebut bisa dipakai di perangkat lain dengan spesifikasi yang (hampir) sama.

Ada dua pustaka yang ditawarkan: BIONIC dan Dalvik. Kalau pada pemasangan sebelumnya saya hanya memasang BIONIC, kali ini saya memasang juga Dalvik. Supaya kalau mau tetap di Dalvik atau kembali dari ART ke Dalvik, perangkat menggunakan pustaka yang teroptimasi.

Memasang Pustaka Bionic yang Teroptimasi

Sumber bacaan: Bionic (perangkat lunak)

Bionic adalah Pustaka C yang digunakan oleh sistem Android. Karena lisensi yang digunakan Bionic adalah BSD, maka Google memilih pustaka ini ketimbang GLIBC yang menggunakan LGPL. Lisensi BSD lebih ramah terhadap produk-produk tertutup (proprietary).

Untuk memasang Bionic:

  1. Dari menu utama pilih Install Zip
  2. Pilih Choose zip from /sdcard
  3. Pilih LG_G3_BIONIC.zip
  4. Pilih Yes – Install LG_G3_BIONIC.zip

Selanjutnya Dalvik.

Memasang Pustaka Dalvik yang Teroptimasi

Sumber bacaan: Dalvik (perangkat lunak)

Semua aplikasi Android adalah aplikasi Java. Aplikasi Java dijalankan oleh mesin JVM. Dalvik adalah mesin JVM yang menjalankan aplikasi-aplikasi tersebut di Android.

Awal mulanya Google menggunakan JAMVM. Namun, kemudian secara gradual pindah ke Dalvik. Kini, Google akan melakukan transisi lagi ke ART.

Cara pasang Dalvik:

 

  1. Dari menu utama pilih Install Zip
  2. Pilih Choose zip from /sdcard
  3. Pilih LG_G3_DALVIK.zip
  4. Pilih Yes – Install LG_G3_DALVIK.zip

Kalau Anda memasang ART, Dalvik tidak perlu dipasang. Toh, pustaka ini tidak akan dipakai bila kita mengaktifkan ART.

MIUI v5 untuk LG G2
Super Android, recharge!

MIUI v5 untuk LG G2

Setelah bosan dengan CloudyG3, saya pun hendak mencicipi ROM lainnya. Alasan ini semakin kuat karena CloudyG3 2.1 yang saya pasang boros baterai. Yang kedua juga karena seseorang sudah tidak lagi menggunakan BBM. Aplikasi BBM for Android dahulu gagal saya pasang di salah satu ROM AOSP.

Entah mengapa, penyedia ROM Android membatasi kecepatan unduhan. Saya pun harus menunggu setengah hari untuk menyelesaikan unduhan. Ya, sudah, berdasarkan mana yang selesai diunduh, saya pun mencoba MIUI v5 untuk LG G2.

Persiapan

Ada beberapa hal yang saya asumsikan telah dilakukan.

  1. GNU/Linux Anda sudah dipasang SDK dan adb mendeteksi telepon Anda.
  2. Memasang root dan Recovery terkustomisasi, saya sendiri menggunakan Philz Recovery 6.48.4. Sebagai catatan, Recovery ini tidak lagi dikembangkan. Ya, tapi untuk saat ini sudah cukuplah. Toh, ini bukan aplikasi, tapi ROM!
  3. Paham bahwa mengganti ROM itu berbahaya dan tidak ada satu pun (termasuk saya) yang dapat menjamin kalau Anda gagal.
  4. Menyimpan semua kontak Anda.

Untuk yang terakhir, caranya ada banyak. Salah satunya:

  1. Masuk ke Contacts contacs .
  2. Di dalam Contacts, pilih Menu Menu icon (biasanya dipojok kiri bawah navigasi).
  3. Pilih Import/Export
  4. Pilih Export to External Storage
  5. Pilih Select All untuk memilih semua kontak.
  6. Pilih Export
  7. Selanjutnya kalau diperingati pilih Yes
  8. Selanjutnya masukkan nama berkas kontak. [Biasanya otomatis akan ditambahkan .vcf]
  9. Selesai.

Kalau saya, kebetulan punya Owncloud sendiri sehingga saya mengekspornya ke sana. Tapi, itu lain cerita.

Memasang MIUI v5 untuk LG G2

Saya mengunduh versi yang resmi dari MIUI. Saya memilih MIUI v5 buatan gtbluesky versi 4.11.28. Dia membuat ROM MIUI v5 dari ROM dasar LG G2. Makanya, saya rasa perangkat keras akan tidak begitu bermasalah.

Berikut caranya, saya asumsikan telepon Anda telah terhubung dengan USB dan Anda dari satu terminal GNU/Linux:

  1. Taruh unduhan ke telepon. Mohon bersabar untuk ini. Ukuran berkas cukup besar.
    adb push miui_d802_gtbluesky_4.11.28_3a1d7a4ed3_4.4.zip /sdcard
  2. Masuk ke Recovery:
    adb reboot recovery
  3. Dari Recovery, hapus semua dengan Wipe Data/Factory reset. Ini yang disebut dengan Clean Install, yakni Anda menghapus semua partisi (kecuali Internal Storage).
  4. Baru setelah itu pasang ROM MIUI. Silakan lihat contoh pemasangan CloudyG3 saya sebelumnya.
  5. Setelah selesai memasang, muat ulang telepon dan tunggu beberapa saat.

Selesai.

Masih ada beberapa tips, tapi saya pecah jadi artikel sendiri, deh. Nampaknya saya tidak sempat menulis semuanya.

Bacaan Lebih Lanjut

Cara Pakai RecyclerView

Cara Pakai RecyclerView

Google menyarankan pengembang untuk menggunakan RecyclerView untuk membuat ListView. Kebanyakan dari kita, sih, sudah cukup puas dengan ViewHolder sendiri. Biasanya, untuk mengambil gambar menggunakan pustaka yang sudah jadi semacam Picasso atau Android Universal Image Loader.

Saat ini saya tertarik dengan RecyclerView karena itu yang disarankan oleh Google. Masih jarang yang memakainya. Mungkin karena berhubung pustaka ini termasuk ke dalam paket AppCompat v21, pustaka yang menerjemahkan beberapa konsep Material Design ke Android versi sebelum Lolipop.

Saya asumsikan Anda sudah terbiasa dengan pengembangan Android, atau mungkin baru belajar seperti saya. Saya sendiri belum sebulan baru belajar. Itu sebabanya, saya menggunakan Android Studio. Tapi, untuk ADT langkahnya miriplah.

Silakan berbagi di bagian komentar. Jangan harapkan saya bisa jawab banyak, ya. Saya belum sebulan belajar Android.

Pembicaraan Jorok

Cara kerja saya begini:

  1. Siapkan paket yang diperlukan.
  2. Buat Model Data, Tampilan Data.
  3. Buat Adapter untuk merekatkan Model Data dengan Tampilan Data.
  4. Masukkan ke dalam Activity.
  5. Buat logika yang diperlukan untuk memroses model data.

Demikian, saya menerapkan MVC kepada proyek Android.

Persiapan

Pertama-tama, masukkan paket RecyclerView ke dalam skrip Gradle: build.gradle (Module:app)

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.+'
    compile 'com.android.support:recyclerview-v7:21.0.+'
}

Paket RecyclerView ada di com.android.support:recyclerview-v7. Appcompat-v7 untuk membuat ActionBarActivity dan beberapa widget Material Design lainnya.

Model-model yang Diperlukan

Biar tidak rumit, saya mau buat daftar yang berisi:

  1. nama pengguna; dan
  2. avatar-nya.

Saya buat sebuah POJO untuk itu.

package edu.ui.jp.pelatihan.materialdesignapps.data;

public class PersonData {
    private String name, url;

    public PersonData(String name, String url) {
        this.name = name;
        this.url = url;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }
}

Selanjutnya, saya rancangkan tampilan gambar avatar dan di sebelahnya ada nama.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal" android:layout_width="match_parent"
    android:layout_height="64dp">

    <ImageView
        android:layout_width="64dp"
        android:layout_height="64dp"
        android:id="@+id/imgAvatar"
        android:layout_margin="8dp"
        android:src="@drawable/ic_launcher" />

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textSize="24sp"
        android:id="@+id/txtName"
        android:layout_gravity="center_vertical" />
</LinearLayout>

Sudah demikian, saatnya membuat Adapter.

Adapter

RecycleView menyediakan sebuah adapter RecyclerView.Adapter yang berisi sebuah ViewHolder. Cara definisinya:

public class PersonDataViewAdapter extends RecyclerView.Adapter <PersonDataViewAdapter.ViewHolder> {
    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        return null;
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {

    }

    @Override
    public int getItemCount() {
        return 0;
    }

    public class ViewHolder extends RecyclerView.ViewHolder {
        public ViewHolder(View itemView) {
            super(itemView);
        }
    }
}

Selanjutnya, mari kita definisikan semua itu. Saya suka untuk kita memulai dari model data. Ada dua model data yang hendak dipertemukan, yakni tampilan dan sekumpulan data yang hendak ditampilkan. Mari definisikan satu per satu.

Buat Model Tampilan

Model tampilan dipegang oleh sebuah kelas statik dalam adapter kita (inner class) ViewHolder. Kelas ViewHolder ini merupakan kelas statik di dalam (inner class) RecyclerView. Untuk kesederhanaan, kita hanya akan mengubah-ubah TextView untuk nama dan mengabaikan ImageView untuk avatar. Topik untuk mengisi gambar sangat menarik untuk menjadi satu pokok topik lain.

/**
 * Kelas publik yang akan dipakai sebagai ViewHolder
 */
public static class ViewHolder extends RecyclerView.ViewHolder {
   public TextView txtName;

   public ViewHolder(View itemView) {
       super(itemView);
       txtName = (TextView) itemView.findViewById(R.id.txtName);
   }
}

Seperti yang kita lihat, kelas ViewHolder kita diharuskan memanggil konstruktur RecyclerView.ViewHolder sebelum menjalankan rutinnya sendiri.

Buat Model Data yang Hendak Ditempel

Model Data yang digunakan oleh adapter biasanya dijadikan properti. Inisialisasinya dibuat dengan memanggil konstruktor adapter kita saja. Jadi, setiap kali mau membuat adapter, si pemanggil harus menyampaikan data yang hendak ditampilkan sebagai parameter.

private LinkedList listData;

/**
 * Konstruktor untuk mengisi Adapter dengan untaian data yang hendak ditaruh.
 * @param listData
 */
public PersonDataViewAdapter(LinkedList listData) {
    this.listData = listData;
}

Selanjutnya, kita mendefinisikan tiga fungsi yang wajib ada.

Definisikan fungsi yang mengembalikan total jumlah data yang ada. Tentu saja ini didapatkan dari banyaknya data yang dikandung oleh untaian data kita.

/**
 * Fungsi ini mengembalikan jumlah data yang hendak ditampilkan
 * @return Jumlah data dalam untaian.
 */
@Override
public int getItemCount() {
    return listData.size();
}

Selanjutnya, buat definisi untuk mengembalikan ViewHolder kita yang nantinya dipakai oleh LayoutManager untuk menggambar untaian. Perhatikan. Pada bagian ini ViewHolder mengambil tata letak (layout) tampilan data kita.

/**
 * Fungsi yang akan ditaruh oleh LayoutManager ketika hendak membuat tampilan (View) baru.
 * @param root Fragment/Activity yang hendak ditempeli untaian (List)
 * @param viewType Tipe View yang hendak dihasilkan.
 * @return
 */
@Override
public ViewHolder onCreateViewHolder(ViewGroup root, int viewType) {
    // Dapatkan View dari inflater
    View v = LayoutInflater.from(root.getContext()).inflate(R.layout.inf_person_view, null);

    // Masukkan ke dalam ViewHolder yang baru
    ViewHolder myVH = new ViewHolder(v);

    // Kembalikan ViewHolder yang sudah kita panggil.
    return myVH;
}

Terakhir, definisikan proses penempelan data ke tampilan.

/**
 * Fungsi ini mengisi setiap data ke View.
 * @param holder Pemegang View yang hendak diperbaharui
 * @param i Posisi data yang hendak diisi dalam untaian
 */
 @Override
public void onBindViewHolder(ViewHolder holder, int i) {
    // Mengambil satu item yang hendak ditaruh
    PersonData item = listData.get(i);

    holder.txtName.setText(item.getName());
    Log.d(this.getClass().getCanonicalName(), item.getName());
}

Setelah tampilan dan data telah kita buat, selanjutnya mari kita buat alur penampakannya di salah satu aktivitas.

Menaruh Dalam Aktivitas

Bisa saja kode ini bisa ditaruh di dalam fragmen (fragment) atau di dalam aktivitas. Yang pasti yang pasti, taruh inisialisasi pada

public class MainActivity extends ActionBarActivity {

    LinkedList<PersonData> list = new LinkedList<PersonData>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);

        populateData(); // Fill the LinkedList here.
        createPersonDataView();
    }
    
    // AND THE REST OF THE CODE GOES HERE...
}

Pertama-tama, isi data terlebih dahulu dengan populateData(). Fungsi ini terserah, entah Anda isi dengan obyek-obyek contoh yang dimasukkan manual, didapatkan dari web service, diambil dari berkas, dan sebagainya. Intinya, isi dulu LinkedList yang akan dipakai untuk menampilkan daftar.

Barulah setelah itu, kita membuat RecyclerView untuk ditampilkan. Contoh implementasinya.

private void configMyRecyclerView() {
        RecyclerView rvList = (RecyclerView) findViewById(R.id.rvNameList);

        // List kita tidak berubah-ubah ukurannya.
        rvList.setHasFixedSize(true);

        // Buat LayoutManager dari Activity ini (MainActivity)
        RecyclerView.LayoutManager layoutManager = new   LinearLayoutManager(this);
    rvList.setLayoutManager(layoutManager);

    // Taruh data kita ke dalam data
    PersonDataViewAdapter adapter = new PersonDataViewAdapter(list);

    // Taruh adapter ke dalam RecycleView
    rvList.setAdapter(adapter);

    // Sedikit animasi pemanis
    rvList.setItemAnimator(new DefaultItemAnimator());

}

Ada banyak Layout Manager yang bisa digunakan. Namun, untuk contoh kali ini gunakan saja yang biasa, yakni LinearLayoutManager. Tugas dia hanya menampilkan per baris seperti daftar pada umumnya. Kalau mau lebih lanjut, silakan coba-coba yang lain.

Terakhir

Baiklah, saya berhenti sampai sini. Sisanya, kelakukan RecyclerView mirip dengan komponen Android yang lain. Selamat berkarya!

Tahu Gejrot, WebP, dan GIMP

Tahu Gejrot, WebP, dan GIMP

Tahu Gejrot

Tahu Gejrot

Gambar Tahu Gejrot saya ambil dengan menggunakan kamera belakang LG G2 saya. Saya lalu melakukan proses lebih lanjut:

  1. Memotong dimensi gambar menjadi 1944×1944 piksel.
  2. Mengaktifkan efek National Geographic, menunya ada di:
    Filters ► Generik ► National Geographic
  3. Simpan sebagai PNG.

Ukuran gambar yang dihasilkan adalah 6,4MB! Cukup besar. Saya pun tertarik dengan WebP yang dikenalkan oleh Google. Dia menyediakan pustaka siap pakai,

libwebp

. Pustaka ini menyediakan perkakas

cwebp

untuk mengonversi gambar dari format lain.

Jalankan

cwebp

berikut:

cwebp -resize 1080 1080 tahu-gejrot-national-geographic.png -o tahu-gejrot-national-geographic-resized.webp

Saya mengecilkan dimensi gambar menjadi 1080×1080 piksel. Ukuran berkas menjadi 169KB.

Publikasi Daring

WordPress 4.0 belum mendukung WebP. Saya harus melakukan beberapa langkah agar gambar ini bisa diunggah ke situs ini:

  1. Memperbolehkan ekstensi berkas
    .webp
    untuk dapat diunggah pada
    Upload Settings
    .
  2. Menambah MIME untuk WebP dengan menggunakan plugin
    WP Add MIME Type
    .

Walaupun saya dapat mengunduh berkas ini, ada masalah karena WordPress tidak dapat menampilkan dengan benar. WordPress memperlakukan gambar tak dikenal ini sebagai gambar dengan ukuran 1×1.

Untuk mengatasi ukuran yang tidak benar, saya lalu mengubah mode penyunting dari Visual ke Text. Pada mode Text, saya memodifikasi tag IMG dengan mengubah dimensinya sesuai gambar (

width="1080" height="1080"

). Ketika saya klik

Save Draft

, dimensi kapsi pun otomatis berubah mengikuti gambar.

Kesimpulan

Nampaknya WebP sudah siap digunakan. Saya tidak melakukan perubahan apa pun pada sisi peladen. Namun, beberapa perangkat lunak seperti WordPress masih belum bisa mengolah format gambar ini secara alami. Berita bagusnya, WordPress dapat dibuat untuk mem-bypass kekurangan itu.

Perkakas yang Digunakan

Berikut daftar perkakas yang digunakan.

National Geographic ScriptFu

Unduh kumpulan skrip yang mengandung National Geographic:

wget https://github.com/elsamuko/gimp-elsamuko/archive/master.zip
unzip master.zip

Sebelum lanjut, Anda harus mengetahui di mana letak direktori untuk meletakkan skrip GIMP. Caranya, pergi ke

Edit ► Preferences ►Folders ► Scripts

Nah, saya memilih untuk memindahkan skrip-skrip tersebut ke direktori yang ada di rumah saya.

mv gimp-elsamuko-master/scripts/* ~/.gimp-2.8/scripts/

Agar GIMP dapat langsung menggunakan skrip-skrip tersebut, pilih

Filters ► Script-Fu ► Segarkan Skrip 

cwebp

Untuk memasangnya di Debian/Ubuntu/BlankOn dan sejenisnya:

apt-get install libwebp

Kalau Gentoo:

emerge -av media-libs/libwebp
MYSQL: Mencari 10 Tabel Dengan Ukuran Terbesar

MYSQL: Mencari 10 Tabel Dengan Ukuran Terbesar

SELECT CONCAT(table_schema, '.', table_name),
       CONCAT(ROUND(table_rows / 1000000, 2), 'M')                                    rows,
       CONCAT(ROUND(data_length / ( 1024 * 1024 * 1024 ), 2), 'G')                    DATA,
       CONCAT(ROUND(index_length / ( 1024 * 1024 * 1024 ), 2), 'G')                   idx,
       CONCAT(ROUND(( data_length + index_length ) / ( 1024 * 1024 * 1024 ), 2), 'G') total_size,
       ROUND(index_length / data_length, 2)                                           idxfrac
FROM   information_schema.TABLES
ORDER  BY data_length + index_length DESC
LIMIT  10;

 

Bacaan Lebih Lanjut

Memasang Owncloud Versi GIT

Memasang Owncloud Versi GIT

Sebelum Memulai

Beberapa hal ini silakan dilakukan terlebih dahulu berdasarkan tulisan sebelum ini:

  1. Membuat basisdata pada bagian Menyiapkan Basisdata.
  2. Membuat pengguna dan rumah pada bagian Menyiapkan Rumah.
  3. Menyiapkan PHP-FPM dan NGINX pada bagian Menyiapkan Konfigurasi Peladen.

Sehingga, berikut ini konfigurasi yang sudah dibuat:

  • Basisdata: awansendiribd
  • Login: awani
  • Rumah: /srv/awani

Selanjutnya bagian utama tulisan ini.

Mengunduh Versi GIT

Sebenarnya tidak perlu sudo bila mau masuk sebagai pengguna awani. Tapi, saya berasumsi Anda sebagai siapa saja pun bisa. Pasang semua:

sudo -u awani -g awani git clone https://github.com/owncloud/core.git /srv/awani/app
sudo -u awani -g awani git clone https://github.com/owncloud/apps /srv/awani/app/apps2
sudo -u awani -g awani git clone https://github.com/owncloud/tasks.git /srv/awani/app/apps/tasks
sudo -u awani -g awani git clone https://github.com/owncloud/documents.git /srv/awani/app/apps/documents
sudo -u awani -g awani git clone https://github.com/owncloud/activity.git /srv/awani/app/apps/activity
sudo -u awani -g awani git clone https://github.com/owncloud/bookmarks.git /srv/awani/app/apps/bookmarks
sudo -u awani -g awani git clone https://github.com/owncloud/contacts.git /srv/awani/app/apps/contacts
sudo -u awani -g awani git clone https://github.com/owncloud/3rdparty /srv/awani/app/3rdparty
sudo -u awani -g awani git clone https://github.com/owncloud/templateeditor.git /srv/awani/app/apps/templateeditor
sudo -u awani -g awani git clone https://github.com/owncloud/chat.git /srv/awani/app/apps/apps/chat

Dua baris terakhir opsional, tetapi kalau saja mau dikembangkan bisa saja. Selanjutnya, silakan lanjutkan biasa saja.

Selesai.

Memasang Viber untuk Gentoo GNU/Linux

Memasang Viber untuk Gentoo GNU/Linux

Viber adalah sebuah produk komunikasi seperti BBM, WhatsApp, dan sebagainya. Viber menyediakan aplikasi untuk dijalankan di destop. Asyiknya, destop termasuk juga GNU/Linux.

Viber menyediakan dua paket, paket Debian dan RPM. Untungnya, setelah saya periksa, pustaka yang disertakan oleh Viber dikompilasi secara statik. Artinya, GNU/Linux selain Debian, Redhat, dan sejenisnya dapat menggunakan Viber.

Mari Memasang

Unduh di laman unduh Viber untuk GNU/Linux.

wget http://download.cdn.viber.com/cdn/desktop/Linux/viber.deb

Pasang ke sistem Anda:

ar p viber.deb data.tar.gz | sudo tar xvfz - -C/

Paket Viber memasang dirinya sendiri ke /opt/viber dan beberapa ikon ke direktori standar. Selanjutnya, buat tautan ke binari Viber agar mudah dieksekusi.

sudo ln -sf /opt/viber/Viber /usr/local/bin/Viber

Selesai dan siap digunakan.

Memperketat Keamanan Situs

Memperketat Keamanan Situs

Pendahuluan

Halo, jumpa lagi di hari Jumat!

Karena isu keamanan akhir-akhir ini semakin ketat, saya merasakan perlunya pembelajaran kepada masyarakat Indonesia mengenai penggunaan enkripsi yang tepat. Entahlah, mungkin ini juga karena saya meneliti Owncloud terlalu jauh. Atau mungkin ini sekedar tulisan menambah kuota tulisan saya di blog. Ilmu memang untuk dibagi.

Orang pasti sudah tahu tentang BEAST, CRIME, dan HEARTBLEED. BEAST adalah proof-of-concept serangan terhadap enkripsi TLSv1.0 yang menyebabkan sebuah domain dapat dibajak dari implementasi TLS v1.0 yang buruk di sistem operasi. Lalu, ada CRIME yang menyerang implementasi kompresi HTTP pada TLS dan SPDY. Yang menghebohkan berikutnya adalah HEARTBLEED yang menyerang implementasi cacat OpenSSL pada implementasi ekstensi TLS heartbeat.

Yang terakhir dan teranyar adalah POODLE, eksploit terhadap SSLv3 yang menyebabkan sekarang ini orang dipaksa untuk mematikan SSLv3. Ya, kecuali Anda menggunakan IE6/7 pada Windows XP yang belum diperbaharui, sebenarnya SSLv3 sudah lama tidak diperlukan. Bahkan, sebaiknya Anda memaksa peramban Anda langsung menggunakan TLS v1.2.

Ekstensi AES-NI

Tapi… tapi… bukankah menggunakan enkripsi membuat peladen kurang responsif?

Itu dulu! Sekarang, ‘kan, sudah ada ekstensi AES-NI pada prosesor x86. Jadi, enkripsi dilakukan secara langsung oleh CPU. Saya melakukan eksperimen kecil untuk memperlihatkan perbedaan operasi biasa dan menggunakan AES-NI.

Operasi biasa menggunakan instruksi CPU normal.

$ OPENSSL_ia32cap="~0x200000200000000" openssl speed -elapsed -evp aes-128-cbc
You have chosen to measure elapsed time instead of user CPU time.
Doing aes-128-cbc for 3s on 16 size blocks: 34349970 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 64 size blocks: 8984170 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 256 size blocks: 2337382 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 1024 size blocks: 589989 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 8192 size blocks: 74022 aes-128-cbc's in 3.00s
OpenSSL 1.0.1i 6 Aug 2014
built on: Fri Aug  8 06:23:32 WIB 2014
options:bn(64,64) rc4(8x,int) des(idx,cisc,16,int) aes(partial) idea(int) blowfish(idx) 
compiler: x86_64-pc-linux-gnu-gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -DTERMIO -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -O2 -pipe -march=native -mtune=native -fomit-frame-pointer -flto=8 -floop-interchange -ftree-loop-distribution -floop-strip-mine -floop-block -ftree-vectorize -fno-strict-aliasing -Wa,--noexecstack
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
aes-128-cbc     183199.84k   191662.29k   199456.60k   201382.91k   202129.41k

Sedangkan berikut operasi menggunakan instruksi AES-NI.

$ openssl speed -elapsed -evp aes-128-cbc
You have chosen to measure elapsed time instead of user CPU time.
Doing aes-128-cbc for 3s on 16 size blocks: 99416661 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 64 size blocks: 27157194 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 256 size blocks: 7746016 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 1024 size blocks: 2005119 aes-128-cbc's in 3.00s
Doing aes-128-cbc for 3s on 8192 size blocks: 253147 aes-128-cbc's in 3.00s
OpenSSL 1.0.1i 6 Aug 2014
built on: Fri Aug  8 06:23:32 WIB 2014
options:bn(64,64) rc4(8x,int) des(idx,cisc,16,int) aes(partial) idea(int) blowfish(idx) 
compiler: x86_64-pc-linux-gnu-gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -DTERMIO -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -O2 -pipe -march=native -mtune=native -fomit-frame-pointer -flto=8 -floop-interchange -ftree-loop-distribution -floop-strip-mine -floop-block -ftree-vectorize -fno-strict-aliasing -Wa,--noexecstack
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
aes-128-cbc     530222.19k   579353.47k   660993.37k   684413.95k   691260.07k

Berikut tabel hasilnya:

Instruksi CPU Tipe 16-bit 64-bit 256-bit 1024-bit 8192-bit
AES-NI aes-128-cbc 530222,19 579353,47 660993,37 684413,95 691260,07
Normal 183199,84 191662,29 199456,6 201382,91 202129,41
Performa 2,8942284557 3,0227827811 3,313970909 3,3985701667 3,4198886248
Total Performa AES-NI 3,2098881874

Tampak bahwa dalam kasus ini, penggunakan AES-NI pada OpenSSL meningkatkan performa 3 kali lipat.

Dukungan AES-NI

Untuk mengetahui apakah prosesor peladen Anda mendukung AES-NI, silakan lihat dengan:

$ cat /proc/cpuinfo  | grep aes
flags           : ... aes ...

Kalau didukung, akan ada tulisan ‘aes’. Biasanya, sih, untuk prosesor AMD dan Intel yang baru [baca: keluaran tahun-tahun ini] sudah mendukung instruksi AES-NI. Kalau pun belum, bisa langsung saja mengompilasi OpenSSL dengan menggunakan instruksi SSE4 atau AVX. Ya, tapi itu di luar cakupan tulisan ini agar tidak terlalu rumit.

Untuk Debian Wheezy, OpenSSL 1.0.1e yang digunakan akan secara otomatis mendeteksi AES-NI. Tidak perlu mengompilasi sendiri untuk versi Debian tersebut. Untuk sistem operasi yang lain, silakan konsultasi kepada Mbah Gugel.

Bila Anda menggunakan KVM atau Proxmox, pastikan Anda menggunakan tipe CPU Host. Cara lain adalah pastikan instruksi AES-NI diperbolehkan untuk KVM.

Konfigurasi NGINX

Karena OpenSSL transparan, maka tidak ada yang perlu dipusingkan oleh NGINX untuk menggunakan AES-NI. NGINX hanya perlu memberitahukan protokol enkripsi yang dipakai untuk HTTPS.  Untuk itu, perhatikan contoh konfigurasi NGINX:

server {
        listen   80;
        listen  [::]:80 ipv6only=on;
        server_name  www.contoh.aja;
        server_name_in_redirect on;
        port_in_redirect on;

        access_log  /var/log/nginx/normal.access.log;
        error_log  /var/log/nginx/normal.error.log;

        ## redirect http to https ##
        rewrite        ^ https://$server_name$request_uri? permanent;
}

server {
        listen   443 ssl spdy;
        listen [::]:443 ipv6only=on ssl spdy;

        server_name  www.contoh.aja;
        server_name_in_redirect on;
        port_in_redirect on;

        ssl  on;
        ssl_certificate /etc/nginx/ssl.cert;
        ssl_certificate_key /etc/nginx/ssl.key;
        
        ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers         "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS";
        ssl_prefer_server_ciphers on;
        ssl_session_cache   shared:SSL:10m;
        ssl_session_timeout 10m;

        access_log  /var/log/nginx/ssl.access.log;
        error_log  /var/log/nginx/ssl.error.log;

        ## HERE PHP ENGINE AND OTHER REWRITE RULES ##
}

Saya akan mencoba menjelaskan beberapa bagian yang penting. Saya mengasumsikan Anda sudah tahu mengonfigurasi NGINX secara dasar sehingga saya tak perlu menjelaskan semuanya. Atau, setidaknya Anda bisa mencari langsung di Internet.

Saya sengaja tidak menyertakan aturan FastCGI PHP dan aturan-aturan rewrite untuk mengurangi kompleksitas kode. Ada banyak tutorial dasar untuk menyertakan aturan FastCGI. Lagipula, untuk aturan-aturan rewrite tergantung kepada aplikasi yang kita gunakan (Drupal, WordPress, dsb.).

Yak, langsung saja.

Mendengar di IPv4 dan IPv6

Berikut sintaksis agar NGINX mendengar semua antarmuka jaringan (IPv4 dan IPv6).

listen   80;
listen  [::]:80 ipv6only=on;

Ada alasan mengapa mengaktifkan dual stack. Universitas Indonesia (UI) sudah sejak lama memiliki satu blok (/16) IPv4 kelas B. Karena termasuk historical member dari IANA, UI juga beruntung mendapatkan satu blok /48 IPv6. Itu sebabnya, hampir semua peladen UI sudah memiliki IPv6 sendiri berikut IPv4 publik.

Mengarahkan Semua ke HTTPS

Berikut sintaksis untuk mengarahkan koneksi HTTP ke HTTPS.

rewrite        ^ https://$server_name$request_uri? permanent;

Ada tutorial lama yang menyampur koneksi HTTPS dan HTTP. Hal ini tidak sesuai dengan prinsip keamanan. Bila memang situs ingin aman sepenuhnya, maka harus semuanya harus menggunakan HTTPS. Konten campuran (berisi HTTP dan HTTPS) tidak disarankan dan beberapa peramban akan cerewet tentang itu.

Mengaktifkan SPDY

Berikut sintaksis agar NGINX menggunakan SSL (HTTPS) dengan SPDY.

listen   443 ssl spdy;
listen [::]:443 ipv6only=on ssl spdy;

Untuk akselerasi HTTPS, Google mengembangkan teknik SPDY. Hampir semua peramban modern mendukung protokol SPDY. Saya pernah membahas ini.

Mengaktifkan SSL

Baris-baris inilah yang mengaktifkan enkripsi HTTPS (SSL).

ssl  on;
ssl_certificate /etc/nginx/ssl.cert;
ssl_certificate_key /etc/nginx/ssl.key;

Baris ssl_certificate mengarahkan ke berkas sertifikat peladen. Ada tiga jenis skenario untuk berkas sertifikat peladen:

  1. Untuk menambah legitimasi, biasanya sertifikat ditandatangani oleh Certificate Authority (CA) yang sudah diakui. StartSSL menyediakan layanan ini dengan gratis. Kalau mau yang murah ada RapidSSL atau Komodo. Kalau mau lebih bonafide, gunakan VeriSign. Mereka ini biasanya sertifikat utamanya (root certificate) sudah dipasang di sistem operasi/peramban. Root certificate adalah sertifikat CA yang dipakai untuk melegitimasi sertifikat sebuah server.
  2. Ada juga organisasi yang membuat root certificate sendiri. Biasanya, mereka memasang sendiri root certificate ke sistem operasi/peramban pengguna. Ada banyak tutorial tentang itu, terutama Windows Server dan UNIX.
  3. Yang paling jamak digunakan di tutorial-tutorial biasanya menggunakan sertifikat yang ditandatangani sendiri (self-signed).

Silakan pilih skenario yang terbaik. Untuk situs bisnis biasanya menggunakan CA pihak ketiga (poin 1). Namun, untuk Intranet biasanya menggunakan poin 2.

Baris berikutnya ssl_certificate_key mengarahkan berkas kunci privat peladen. Pastikan berkas ini hanya bisa diakses baca-saja oleh root (0400).

Parameter Tambahan

Berikut parameter tambahan yang opsional. Parameter-parameter ini yang memperkuat enkripsi situs.

Hanya Gunakan TLS

Protokol SSLv3 sudah tamat semenjak POODLE beberapa hari yang lalu. Banyak yang menyarankan untuk mematikan protokol ini. Ya, berhubung protokol ini sudah sangat lama, wajar saja. Lagipula, hanya IE6/7 yang menggunakan Windows XP SP3 yang belum ditambal saja yang terpengaruh. Sisanya, dunia sudah mengenal TLS sejak lama.

Ya sudah, cukup aktifkan semua versi protokol TLS saja.

ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;

Protokol TLS pun sebenarnya tidak begitu aman. Kalau mau paranoid, hanya aktifkan TLSv1.2 saja. Tentu saja, ini mengurangi jumlah pengunjung dan peramban yang bisa mengakses situs kita.

Gunakan SHA256 AES-GCM dengan Forward Secrecy dan RC4 Sebagai Cadangan

Semenjak tahun 2011, SHA1 dianggap sudah tidak aman lagi. Lebih parah lagi, Google akan mempenalti situs-situs yang masih menggunakan SHA1 pada 1 Januari 2017. Artinya, semua situs yang masih memakai sertifikat dengan tanda tangan SHA1 akan dianggap tidak aman oleh produk-produk Google.

Bila Anda masih baru mau memasang sertifikat, gunakan sertifikat dengan tanda tangan SHA256. Atau kalau lebih bagus lagi, gunakan SHA387. Tetapi, untuk SHA387 masih jarang dan lagi mahal.

Ada banyak protokol pertukaran kunci dan saya tidak mau terlalu detail. Saat ini protokol yang aman dari gangguan adalah AES-GCM dan RC4. Protokol RC4 sudah lama dan relatif aman. Sedangkan GCM masih relatif baru, sehingga beberapa peramban lama tidak mendukung.

[Lama itu hitungannya 10 s.d. 20 tahun yang lalu, ya, kawan-kawan.]

Saat ini RC4 disarankan untuk ditinggalkan. Bukan berarti dia tidak aman. Sudah ada metodenya, tetapi untuk bisa membobol RC4 saat ini memerlukan sumber daya yang sangat besar. Jadi, RC4 relatif cukup aman.

Penggunaan AES-GCM disarankan oleh karena adanya instruksi AES-NI yang mempercepat percepat perhitungan.  Teknik ini peningkatan implementasi dari AES-CBC dengan menggunakan instruksi perangkat keras. Itu sebabnya, AES-CBC disarankan ditinggalkan.

Berikut instruksinya.

ssl_ciphers         "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS";

Oh, iya, satu lagi. Dalam konfigurasi ini diaktifkan mode Forward Secrecy yang ada di TLSv1.2.

Mengaktifkan Urutan Enkripsi Di Sisi Server

Instruksinya:

ssl_prefer_server_ciphers on;

Instruksi ini mengakibat peladen akan menyuruh klien untuk menggunakan metode enkripsi yang diinginkan sesuai dengan urutan. Ini mengurangi kemungkinan klien yang sudah mendukung TLSv1.2 malah menggunakan versi terdahulu karena konfigurasi perambannya. Hal ini bisa memitigasi terhadap serangan BEAST.

Menyimpan Sesi SSL

Instruksinya:

ssl_session_cache   shared:SSL:10m;
ssl_session_timeout 10m;

Untuk keperluan optimasi, NGINX dapat menyimpan sesi SSL pada tembolok. Ada dua jenis yang didukung. Yang pertama, tembolok tersebut disimpan oleh NGINX sehingga bisa diakses oleh sesama proses-proses pekerja NGINX. Yang kedua, per pekerja menggunakan tembolok yang disediakan oleh OpenSSL. Disarankan untuk menggunakan tembolok NGINX saja.

Menurut NGINX, 1 MB mampu menampung 4000 sesi. Konfigurasi ini menggunakan 10MB sehingga kira-kira ada 40000 sesi yang didukung. Setiap sesi ini disimpan selama 10 menit saja. Silakan dikonfigurasikan sesuai kemampuan peladen Anda.

Terakhir

Setelah semua selesai, silakan menyalakan ulang NGINX. Mari saya rekap untuk Anda:

  1. Gunakan SPDY untuk mempercepat koneksi HTTPS.
  2. Gunakan kunci dengan algoritma SHA256 atau lebih yang sudah divalidasi oleh CA.
  3. Gunakan protokol TLS teranyar dengan AES-GCM dengan RC4 sebagai cadangan.
  4. Gunakan tembolok untuk mengoptimasi penggunaan TLS.

Anda pun sudah memiliki peladen yang cukup handal. Anda bisa mempelajari teknik-teknik tambahan lain mengenai SSL, misalnya menggunakan OCSP.

Terakhir, Anda perlu mengedukasi pengguna Anda agar tidak memberikan sandi kepada siapa pun dan mengganti sandi secara periodik, misalnya 6 bulan sekali. Percuma punya infrastruktur yang handal tanpa pengguna yang paham.

Nota Bene

Gunakan pihak ketiga untuk menguji SSL. Saya menggunakan perkakas dari Qualys SSL Lab. Contoh hasil pengujian konfigurasi SSL pada Blog Staff UI.

SSL Labs test on Blog Staff UI. Yeah, we need to upgrade into SHA256. The certificate is issued not long ago.

SSL Labs test on Blog Staff UI. Yeah, we need to upgrade into SHA256. The certificate is issued not long ago.

Bacaan Lebih Lanjut

Owncloud: Solusi Perangkat Lunak Bebas

Owncloud: Solusi Perangkat Lunak Bebas

Untuk memenuhi kuota menulis, saya akan menulis mengenai pemasangan Owncloud. Ini bukan karena Snowden yang memberitahukan untuk menghindari menggunakan Facebook, Google, dan Twitter. Tetapi, karena saya memang sedang iseng tentang perangkat lunak ini. Coba ada yang meminta untuk mencoba sesuatu yang lain, saya pasti menulis tentang itu.

Berbeda dengan konfigurasi biasa, saya menggunakan NGINX sebagai peladen HTTP dan PHP-FPM sebagai penyedia PHP. Hal ini karena ada WAF yang bisa dikonfigurasi nantinya apa bila Anda mau membuat ini serius. Ada banyak tambahan yang bisa dibuat dari Owncloud.

Yak, tanpa banyak basa-basi, mari kita memasang. Saya asumsikan Anda telah memasang NGINX dan MySQL pada peladen Anda. Saya juga mengasumsikan Anda menggunakan Debian atau turunannya (BlankOn atau Ubuntu).

Menyiapkan Basisdata

Pertama-tama, siapkan basisdata terlebih dahulu, masuk ke dalam terminal MySQL sebagai Administrator:

sudo mysql --defaults-file=/etc/mysql/debian.cnf

Buat basisdata dan berikan hak akses ke klien Owncloud:

CREATE DATABASE awansendiribd;
GRANT ALL PRIVILEGES ON awansendiribd.* TO 'megawan'@'localhost' IDENTIFIED BY 'week^u2heoQuuv]ah9sah]B~ahShie?t';
FLUSH PRIVILEGES;
QUIT;

Saya menggunakan pwgen untuk membuat sandi yang aman:

pwgen -y 32

Anda bisa buat sendiri sandi Anda, ganti nama basisdata, dan nama klien basisdata yang akan digunakan. Hal ini agar Owncloud Anda bisa aman. Belajarlah untuk aman.

Menyiapkan Rumah

Pada konfigurasi kali ini, saya menggunakan pengguna tersendiri untuk Owncloud. Bukan pengguna baku www-data, tetapi yang berbeda — Anda pun bisa berbeda dari tutorial ini. Caranya:

sudo adduser --home /srv/awani --disabled-password awani

Saya membedakan instalasi Owncloud dengan datanya. Mari buat kedua direktori tersebut.

sudo -u awani mkdir /srv/awani/{app,data}

Selanjutnya, unduh dan pasang Owncloud. Pada penulisan ini, yang terbaru adalah Owncloud 7.0.2. Silakan cek versi terbaru yang mungkin sudah ada saat Anda mencoba ini lagi di masa mendatang.

wget https://download.owncloud.org/community/owncloud-7.0.2.tar.bz2 -O- | \
sudo -u awani tar xvfj - -C /srv/awani/app --strip 1

Sesuaikan dengan direktori Anda sendiri.

Menyiapkan konfigurasi Peladen

Ada dua yang perlu disiapkan:

  1. Peladen PHP-FPM untuk konfigurasi PHP5.
  2. Peladen NGINX untuk HTTPS.

Sekarang konfigurasi PHP-FPM.

Konfigurasi PHP-FPM

Buat berkas konfigurasi /etc/php5/fpm/pool.d/owncloud yang berisi:

[owncloud]
;; I'm using Socket-based connection because it's safer.
;; Set only Owncloud user
user = awani
group = awani
listen = /tmp/php5-awan-awan.sock
listen.owner = awani
listen.group = awani
listen.mode = 0660

;; Set default server pools
pm = dynamic
pm.max_children = 20 
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 5 

;; Set PHP5 logging
chdir = /
php_admin_value[error_log] = /var/log/fpm-php.awan-awan.log
php_admin_flag[log_errors] = on

;; Longer execution time and bigger upload size.
php_admin_value[max_execution_time] = 300 
php_admin_value[upload_tmp_dir] = /tmp
php_admin_value[upload_max_filesize] = 16G
php_admin_value[post_max_size] = 16G

Jumlah peladen itu tidak saya rubah. Silakan Anda sesuaikan dengan kebutuhan dan kemampuan mesin Anda. Berkas yang bisa diunggah pun sampai 16GB. Secara teori, sih, berkat Menkominfo yang mau turun, tidak mungkin ada berkas sebesar itu yang diunggah.

Setelah selesai, aktifkan Owncloud dan muat ulang PHP-FPM Anda.

sudo invoke-rc.d php5-fpm restart

Sekarang saatnya mengonfigurasi NGINX.

Konfigurasi NGINX

Asal Anda tahu, CA yang beredar di pasaran masih menggunakan enkripsi 1024-bit dan 2048-bit. Kalau pun ada yang 4096-bit, mereka menjual sertifikat dengan harga mahal. Itu sebabnya, saya menggunakan sertifikat yang ditandatangani sendiri.

Sedikit tambahan, Debian dan distro GNU/Linux terbaru lainnya menolak menyertakan CA yang masih 1024-bit. Makanya tempo hari kita gagal memasang Origin. Hal ini karena Origin masih menggunakan CA yang 1024-bit. Ya, itulah nasib keamanan sebatas ilusi.

Membuat Sertifikat Ditandatangani Sendiri (Self-signed Certificate)

Mari membuat sertifikat yang bisa ditandatangani sendiri:

sudo openssl req -newkey rsa:4096 -sha512 -x509 -days 3650 -nodes -out /etc/nginx/awan-awan.pem -keyout /etc/nginx/awan-awan.key

Selanjutnya membuat konfigurasi NGINX.

Membuat Konfigurasi NGINX

Buat berkas konfigurasi /etc/nginx/sites-available/owncloud dengan isi sebagai berikut:

## REDIRECT ALL HTTP TO HTTPS
server {
        listen 80;
        server_name awan.contoh.aja; # CHANGE THE HOSTNAME!
        return 301 https://$server_name$request_uri;  # enforce https
}

## HTTPS
server {
        listen 443 ssl;
        server_name awan.contoh.aja; # CHANGE THE HOSTNAME!

        keepalive_timeout   70;

        ## DISABLE SSLv3 only TLS!
        ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers         AES128-SHA:AES256-SHA:RC4-SHA:DES-CBC3-SHA:RC4-MD5;
        ssl_certificate     awan-awan.pem;
        ssl_certificate_key awan-awan.key;
        ssl_session_cache   shared:SSL:10m;
        ssl_session_timeout 10m;

        # Path to the root of your installation
        root /srv/awani/app;

        client_max_body_size 16G; # set max upload size
        fastcgi_buffers 64 4K;

        rewrite ^/caldav(.*)$ /remote.php/caldav$1 redirect;
        rewrite ^/carddav(.*)$ /remote.php/carddav$1 redirect;
        rewrite ^/webdav(.*)$ /remote.php/webdav$1 redirect;

        ## REWRITE FOR BETTER CLEAN URL
        rewrite ^/f/(.*)$       /public.php?service=files&t=$1;

        index index.php;
        error_page 403 /core/templates/403.php;
        error_page 404 /core/templates/404.php;

        location = /robots.txt {
            allow all;
            log_not_found off;
            access_log off;
        }

        location ~ ^/(data|config|\.ht|db_structure\.xml|README) {
                deny all;
        }

        location / {
                # The following 2 rules are only needed with webfinger
                rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
                rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;

                rewrite ^/.well-known/carddav /remote.php/carddav/ redirect;
                rewrite ^/.well-known/caldav /remote.php/caldav/ redirect;

                rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;

                try_files $uri $uri/ index.php;
        }

        #Path to default data directory
        location ~ ^/srv/awani/data/ {
            internal;
            root /;
        }

        location ~ ^(.+?\.php)(/.*)?$ {
                try_files $1 = 404;

                include fastcgi_params;
                fastcgi_param SCRIPT_FILENAME $document_root$1;
                fastcgi_param PATH_INFO $2;
                fastcgi_param HTTPS on;
                fastcgi_pass unix:/tmp/php5-awan-awan.sock;
        }

        # Optional: set long EXPIRES header on static assets
        location ~* ^.+\.(jpg|jpeg|gif|bmp|ico|png|css|js|swf)$ {
                expires 30d;
                # Optional: Don't log access to assets
                access_log off;
        }
}

Perhatikan kalau saya menghapus SSLv3 dari muka bumi. Setahu saya, hanya IE6 yang masih menggunakan SSLv3. Peramban modern sudah mendukung TLS. Bahkan, kalau mau lebih aman, silakan hapus selain TLSv1.2 agar aman dari gangguan SHARK.

Jalankan ulang NGINX.

 sudo ngxensite owncloud 
sudo invoke-rc.d nginx restart

Sekarang saatnya memulai pemasangan.

Menyiapkan Konfigurasi Owncloud

Setelah semua berjalan sebagai mana mestinya, saatnya membuka peramban dan mengarahkan ke alamat yang telah dibuat. Nanti ada wisaya yang berisi satu halaman konfigurasi pengguna awal (Administrator), letak data, dan konfigurasi basisdata. Saya malas membuat cuplikannya, lebih baik saya arahkan saja.

Bagian pertama adalah membuat Administrator Owncloud.

Create an admin account

  • superman
  • r4NdomP4$sW()Rd

Bagian berikutnya adalah direktori menaruh data.

Data folder

  • /srv/awani/data

Lalu konfigurasi MySQL.

Configure the database

  • megawan
  • week^u2heoQuuv]ah9sah]B~ahShie?t
  • awansendiribd
  • localhost

Setelah itu semua selesai, lalu tekan tombol Finish Setup.

Tunggu sebentar dan hasilnya Anda siap untuk masuk.

Owncloud Login page

Owncloud Login page

Selamat mencoba dan bereksplorasi! Mohon bagi-bagi ilmu kalau ada yang baru.

Bacaan Lebih Lanjut

Unduhan Tak Berujung Pada EA Origin

Unduhan Tak Berujung Pada EA Origin

Pada saat hendak mengunduh sebuah permainan, Origin selalu pada keadaan “Preparing Download”. Rasanya tidak mungkin semalaman ditinggal masih pada status tersebut. Ketika WINE dijalankan dari terminal GNU/Linux, saat mengunduh permainan ada pesan ini berulang-ulang:

fixme:netprofm:list_manager_GetConnectivity 0x17a640, 0x33cd98

Setelah saya mencari tahu, ternyata ada masalah pada Qt5Network.dll yang dipakai oleh Origin. Intinya, karena proses pemanggilan (system call) pada wineserver terlalu panjang, unduhan tak juga diproses. Maka, solusinya Qt5Network.dll harus ditambal untuk menggunakan tembolok pada TcpSockets. Hal ini mengurangi system call yang berlebihan sehingga unduhan bisa berjalan.

Ya, sudah, selanjutnya silakan pergi ke direktori Origin. Kebetulan saya menggunakan Playonlinux, normalnya ada di “~/.wine/drive_c/Program Files/Origin/”

cd "~/PlayOnLinux's virtual drives/wine_csmt/drive_c/Program Files/Origin"

Lalu, selanjutnya unduh tambalan untuk Qt5Network.dll.

wget "https://bugs.winehq.org/attachment.cgi?id=47911" -O Qt5Network.bin.patch

Selanjutnya, buat salinan Qt5Network.dll untuk berjaga-jaga.

cp Qt5Network.dll{,.orig}

Terakhir, tambalan dimulai.

patch -Np0 -i ~/Unduhan/Wine/Qt5Network.bin.patch

Lalu jalankan Origin dan siap untuk mengunduh.

Bacaan Lebih Lanjut

Pengalaman Memperbaharui LG G2 Versi Saya
Super Android, recharge!

Pengalaman Memperbaharui LG G2 Versi Saya

[themify_box style=”yellow warning rounded shadow”]SEMUA INI DAPAT MERUSAK TELEPON ANDA, LG G2. SAYA TIDAK BERTANGGUNG JAWAB ATAS RUSAKNYA TELEPON ANDA. RISIKO TANGGUNG SENDIRI![/themify_box]

Setelah mencoba-coba beberapa AOSP, LG G2 saya menjadi rusak dan tidak dapat digunakan. Saya pun mengembalikan ROM LG G2 saya ke kondisi awal seperti yang saya ceritakan sebelumnya. Saya pun mencoba mengulangi menjalankan apa yang telah saya lakukan sebelumnya. Namun, kali ini saya coba jalankan versi mudah dan terintegrasi dalam satu entri agar mudah dibaca keseluruhan.

Diasumsikan kondisi awal adalah LG G2 dengan ROM Kit Kat (4.4.2) asli dari pabrikan (D80220B).

Unduh Terlebih Dahulu

Agar memudahkan tutorial ini, sebaiknya Anda sudah mengunduh berkas-berkas yang diperlukan dalam tutorial ini agar sekali jalan. Berkas-berkas itu, antara lain:

  1. D802_AutoRec.apk
  2. KK_Baseband_D802.zip
  3. CloudyG3_1.3.zip
  4. LG_G3_BIONIC.zip
  5. LG_G3_DALVIK.zip
  6. QuickWindow_Fix_V2.zip
  7. LGMessage_fix.zip

Saya berharap sebelum memulai, pastikan bahwa berkas-berkas ini sudah diunduh ke LG G2 Anda.

Memasang Recovery ROM

Sumber bacaan: AutoRec: Kit Kat Recovery Installer

Untuk dapat memasang Recovery ROM yang telah terkustomisasi perlu dilakukan dua proses secara berurutan:

  1. Memasang izin admin (rooting/jailbreaking) pada LG G2.
  2. Memasang ROM Recovery yang telah terkustomisasi. Saya menggunakan Philz Recovery ROM.

Memasang Izin Admin

Memasang izin admin (rooting/jailbreaking) adalah proses penjebolan perangkat agar dapat menjalankan tindakan yang membutuhkan kewenangan admin (root/Administrator/super user). Pada umumnya perusahaan pembuat perangkat telepon mematikan fungsi ini. Untuk dapat memodifikasi telepon, maka fungsi ini perlu diaktifkan.

ROOT LG G2 dapat dilakukan dengan menggunakan ioroot seperti yang dijelaskan pada tulisan saya yang lalu.

Memasang ROM Recovery Terkustomisasi

Untuk memasang ROM Recovery dapat menggunakan AutoRec, sebuah aplikasi yang dibuat oleh cloudyfa, seorang pengembang di Forum XDA. Sayangnya, APK aplikasi ini tak dapat ditaruh di Google Play. Android umumnya tidak secara baku mengizinkan APK selain dari Google Play Store dipasang ke perangkat. Selanjutnya mengaktifkan pemasangan dari luar Google Play Store.

Mengaktifkan Pemasangan Di Luar Google Play Store

Sebelum memasang AutoRec, pastikan LG G2 Anda dapat memasang APK dari sumber selain Google Play Store. Caranya:

  1. Masuk ke Pengaturan
  2. Pada bagian Umum pilihlah Pengamanan
  3. Pada bagian Pengamanan, pastikan pilihan Sumber tak dikenal tercentang.
    I know this is a LG G3 settings, but it is the same as LG G2.

    I know this is LG G3 settings, but it is the same as LG G2. Tick the “Unknown sources”

Setelah itu, lanjutkan dengan memasang AutoRec.

Memasang AutoRec

Pasang APK AutoRec dari Forum XDA, caranya:

  1. Pergi ke halaman unduhan AutoRec dan unduh D802_AutoRec.apk ke LG G2 Anda.
  2. Buka berkas yang sudah diunduh dengan menggunakan Pengelola File dan pilih APK tersebut untuk menjalankan aplikasi.
    Click the AutoRec APK to install it

    Click the AutoRec APK to install it

  3. Pilih Instal ketika keyakinan Anda dipertanyakan.
    Click Install to proceed

    Click Install to proceed

  4. Setelah selesai, buka aplikasi dengan menekan Buka.
    Click Open to open AutoRec after installing it.

    Click Open to open AutoRec after installing it.

Sekarang saatnya menjalankan AutoRec.

Menjalankan AutoRec

AutoRec melakukan proses-proses berikut ini; 1) memasang versi aboot.img terdahulu yang bisa digunakan untuk memasang ROM terkustomisasi; 2) memasang TWRP, salah satu ROM Recovery yang terkustomisasi. Berikut caranya:

  1. Pada saat pertama kali menjalankan aplikasi akan ditanyakan izin menjalankan AutoRec sebagai admin.
    Click Allow to allow AutoRec runs as super user.

    Click Allow to allow AutoRec runs as super user.

  2. Kalau ditanya apakah Anda benar-benar mau melakukannya, pilih saja YES.
    Select YES for confirmation.

    Select YES to confirm custom recovery installation.

  3. AutoRec akan memasang Loki (semacam pemintas agar ROM Terkustomisasi dapat dipasang). Selanjutnya, pilih Flash Recovery untuk memasang TWRP.
    AutoRec running lokifying and install a custom kernel.

    AutoRec running lokifying and install a custom kernel.

  4. Setelah memasang TWRP, akan ditanyakan untuk melanjutkan masuk ke Recovery (TWRP) atau keluar dari aplikasi. Pilih To recovery untuk masuk TWRP atau pilih exit untuk keluar.

Selanjutnya memasang Philz Touch Recovery.

(Opsional) Memasang Philz Touch Recovery

Sumber bacaan: Philz Touch 6 Recovery How to Install

TWRP Main Menu

TWRP Main Menu

Sebenarnya menggunakan TWRP pun sudah bisa. Tapi, banyak yang menyarankan untuk memasang Philz Touch Recovery untuk LG G2. Hal ini karena Philz merupakan TWRP yang dimodifikasi untuk perangkat LG G2.

  1. Masuk ke Recovery LG G2. Caranya, entah dengan cara: 1) menyolok ke komputer dan mengetik “adb reboot recovery” dari komputer;2) dengan menu di AutoRec tadi; atau3) dengan menyalakan kembali sambil menahan tombol Daya dan Volum Turun.
  2. Di TWRP tekan tombol Install.
  3. Pilih install zip from sdcard.
  4. Pilih philz_touch_6.48.4-d802.zip.
  5. Seret jari Anda pada tombol Swipe to flash untuk memasang Philz Touch Recovery.
    Swipe your finger on the blue button and drag your finger to the right.

    Swipe your finger on the blue button and drag your finger to the right.

  6. Setelah itu, tekan tombol kembali sampai ke menu utama TWRP.
  7. Terakhir, untuk masuk ke Philz, pilihlah Reboot dan lalu pilih Recovery.

Maka apa bila tak ada aral melintang, maka sistem akan masuk ke Philz Touch Recovery.

Philz Touch 6 Recovery 6.48.4 main menu

Philz Touch 6 Recovery 6.48.4 main menu

Selanjutnya memasang ROM dan konfigurasi yang saya suka.

Memasang ROM Kesukaan Saya

Setelah memasang ROM Recovery yang terkustomisasi, saatnya memasang ROM LG G2 yang menurut saya bagus. Dari awal saya memiliki Android, saya selalu menganggap sistem operasi bawaan pabrik biasanya lambat, penuh aplikasi yang tak dibutuhkan, dan lawas. Dari Nexian Journey (A890)Sony Ericsson Xperia Mini Pro (Mango/SK17i), bahkan sampai iRobot (WM8505) yang dibelikan teman di Shenzhen tak pernah lepas dari modifikasi.

Untuk LG G2, setelah saya coba-coba beberapa ROM, saya pun berkesimpulan bahwa CloudyG3 paling optimal untuk kebutuhan saya. Tentunya, versi yang saya pasang bukan versi yang begitu saja. Saya memodifikasi beberapa bagian dari CloudyG3. Saya menambahkan: 1) pustaka Bionic dan Dalvik teroptimasi; dan 2) QuickWindow (aplikasi LG G2) untuk menggantikan Quick Circle (aplikasi LG G3).

Urutan memasang ROM dengan konfigurasi kesukaan saya secara garis besar dapat dijabarkan, yaitu:

  1. Menghapus seluruh partisi (System, Data, Cache, Dalvik Cache) kecuali Internal Storage sebelum memasang ROM.
  2. Memasang Baseband Kit Kat.
  3. Memasang CloudyG3 1.3.
  4. Memasang Bionic dan Dalvik.
  5. Memasang QuickWindow.
  6. Masuk ke sistem dan mengubah Dalvik menjadi ART.

Memasang CloudyG3

Sumber bacaan: CloudyG3 1.3

CloudyG3 adalah sebuah ROM untuk LG G2. Pengembangnya mengambil ROM LG G3 dan mengonversi ROM tersebut agar dapat dijalankan ke LG G2. Dengan menggunakan CloudyG3 sebenarnya seperti menyulap LG G2 menjadi LG G3. Cuma bedanya, ROM terkustomisasi ini lebih ringan dan teroptimasi.

Saya sudah pernah membahas cara memasang CloudyG3 dengan TWRP. Kali ini saya mencoba membahasnya dengan menggunakan Philz. Asumsi saya, kita sedang berada di halaman utama Philz. Berikut langkahnya.

Hapus Semua Partisi, Kecuali Internal Storage

Internal Storage itu adalah partisi yang terlihat ketika kita mencolokkan LG G2 ke komputer atau perangkat lain. Biasanya, kita mengunduh dan menaruh berkas-berkas ke situ, termasuk ROM. Itu sebabnya, cukup sisakan partisi itu dan hapus yang lainnya. Sebab, partisi yang lainnya akan diisi dengan sistem baru dari ROM yang kita pilih.

Cara hapus:

  1. Dari menu utama, pilih Wipe Data/Factory Reset
    Select Wipe Data/Factory Reset to delete all the partitions, except Internal Partition

    Select Wipe Data/Factory Reset to delete all the partitions, except Internal Partition

  2. Pilih Clean to Install a New ROM
    Clean to Install a New ROM

    Select Clean to Install a New ROM

  3. Pilih Yes, I will install a new ROM!
    Yes, I will install a new Rom!

    Select Yes, I will install a new Rom!

Setelah proses penghapusan sistem berhasil, kembali ke halaman depan Philz dengan memilih tombol kembali. Selanjutnya, demi menghemat tulisan ini, saya tak tampilkan cuplikan menu halaman depan Philz.

Pasang Baseband Kit Kat (Stock oleh CloudyFA)

Baseband adalah sebuah partisi khusus yang berisi informasi radio dan konfigurasi pabrik yang digunakan di telepon. Baseband penting untuk setiap ROM. Ada kalanya ROM berdasarkan AOSP atau Cyanogen menggunakan baseband yang berbeda dengan baseband bawaan perangkat.

Cara pasang:

  1. Dari menu utama pilih Install Zip
    Select Install Zip to install the ROMS.

    Select Install Zip to install the ROMS.

  2. Pilih Choose zip from /sdcard
    Choose zip from /sdcard

    Select Choose zip from /sdcard

  3. Pilih KK_Baseband_D802.zip
    Pick KK_Baseband_D802.zip

    Pick KK_Baseband_D802.zip

    Pemasangan
  4. Pilih Yes – Install  KK_Baseband_D802.zip
    Yes - Install KK_Baseband_D802.zip

    Select Yes – Install KK_Baseband_D802.zip

Selanjutnya pasang CloudyG3.

Memasang CloudyG3

Cara pasangnya sama dengan memasang Baseband, yakni:

  1. Dari menu utama pilih Install Zip
  2. Pilih Choose zip from /sdcard
  3. Pilih CloudyG3_1.3.zip
    Select CloudyG3_1.3.zip

    Select CloudyG3_1.3.zip

  4. Pilih Yes – Install CloudyG3_1.3.zip

Hmm… semakin lama saya semakin malas membuat cuplikan. Kira-kira sampai poin ini pemasangan komponen yang lain hanya repetisi saja. Begitu, deh. 🙂

Memasang Pustaka Teroptimasi

Dipindahkan ke artikel tersendiri.

Selanjutnya memilih ART.

Mengaktifkan ART

Ada di artikel sebelum ini.

Intinya:

  1. Pilih Pengaturan ⇒ Umum ⇒ Opsi pengembang
  2. Pilih Pilih waktu operasi
  3. Pilih Pakai ART
  4. Nyalaulangkan LG G2 dan tunggu agak lama.

Selanjutnya memasang Quick Window.

Memasang QuickWindow

Sumber bacaan: [MOD]QuickWindow Apps for G3 Ported Roms

LG membuat QuickCircle untuk perangkat LG G3-nya dan QuickWindow untuk LG G2-nya. Kedua aplikasi ini berguna untuk menampilkan layar kecil ketika tutup telepon (tambahan yang dapat dibeli) menutup perangkat. Dengan menggunakan tutup khusus ini, pengguna tak perlu membuka teleponnya untuk mengakses beberapa informasi.

Sayangnya, tutup telepon ini berbeda bentuk antara QuickCircle dan QuickWindow. Saya juga tak tertarik membeli tutup khusus untuk QuickCircle. Itu sebabnya, saya perlu mengganti aplikasi QuickCircle dengan QuickWindow agar sesuai dengan tutup telepon yang saya miliki.

(Opsional) Memasang ZIP QuickWindow

Sayangnya, ketika saya sudah panjang lebar menjelaskan, ternyata CloudyG3 versi 1.3 sudah menyertakan QuickWindow. Ya, sudah, tetap saja memasang QuickWindow demi kepuasan batin.

 

  1. Dari menu utama pilih Install Zip
  2. Pilih Choose zip from /sdcard
  3. Pilih QuickWindow_Fix_V2.zip
  4. Pilih Yes – Install QuickWindow_Fix_V2.zip

Selanjutnya, pasang QuickWindow Message Fix:

 

  1. Dari menu utama pilih Install Zip
  2. Pilih Choose zip from /sdcard
  3. Pilih LGMessage_fix.zip
  4. Pilih Yes – Install LGMessage_fix.zip

Selanjutnya memasang aplikasi-aplikasi yang kompatibel.

Memasang Aplikasi-aplikasi QuickWindow

Sumber bacaan: Quick Circle Apps

Aplikasi QuickWindow yang dipasang masih sedikit. Untungnya, ada pengembang di XDA yang membuat aplikas-aplikasi tambahan untuk memperkaya QuickCircle/QuickWindow. Silakan saja diunduh dari Google Play Store. Nanti dapat dipilih maksimal 6 dari aplikasi-aplikasi tersebut.

Cara mengubahnya dari:

  1. Pilih Pengaturan ⇒ Umum ⇒ Aksesoris
  2. Pilih Casing QuickCircle ⇒ Pilih aplikasi
  3. Beri tanda centang untuk maksimal 6 aplikasi yang tersedia untuk aktif di QuickCircle.
  4. Pilih Simpan

Nantinya yang muncul pada QuickWindow adalah ikon-ikon dari aplikasi yang kita telah pilih.

Optimasi Baterai

Untuk bisa tahu keunggulan ROM ini perlu penyesuaian beberapa hari. Hal ini karena sistem operasi mempelajari kelakuan pemakai perangkat. Untuk mengaktifkan fitur ini, silakan:

  1. Pilih Pengaturan ⇒ Umum ⇒ Baterai
  2. Aktifkan Pengisian daya pintar dengan memberi tanda centang.
    Enable smart charging based on our behavior.

    Enable smart charging based on our behavior.

Kata Terakhir

Yak, demikian akhirnya. Panjang dan lama sekali waktu yang diperlukan untuk menulis ini. Saya sendiri sudah mencoba mengulang memasang ini dari awal. Memang, beberapa konfigurasi hilang. Tapi, saya menemukan banyak hal baru.

Hasilnya? Ya, selain banyak fitur, terutama pada pemakaian normal saya bisa mendapatkan waktu aktif lebih dari 1 hari! Cuplikan tersedia!

Battery usage with several social media and two email accounts active.

Battery usage with several social media and two email accounts active.

Beberapa media sosial yang saya aktifkan, misalnya: Telegram, WhatsApp, LINE, BBM, Twitter, dan Instagram. Ada 2 akun surel yang aktif pula. Semua itu saya aktifkan sinkronisasi akunnya. Hasilnya, tetap irit.

Selamat mencoba dan berhati-hatilah.

 

 

 

 

Bacaan Lebih Lanjut

Alternatif Mengubah cue/bin Menjadi FLAC

Alternatif Mengubah cue/bin Menjadi FLAC

Saya terkejut ketika saya membandingkan FLAC yang saya hasilkan dengan teknik sebelumnya ternyata sedikit berbeda dengan WAV dan data mentah CD. Hal ini dikonfirmasi juga oleh beberapa tulisan. Awalnya, banyak yang mengira ini efek plasebo karena sampai saat ini belum terbukti. Tapi, telinga berkata lain.

Kendati demikian, saya tetap memilih FLAC karena FLAC adalah format terbuka yang didukung oleh banyak perangkat. Saya, sih, mau coba menggunakan Wavpack, APAC, atau ALAC. Tapi, berhubung format-format tersebut eksotis, ya, saya urungkan niat.

Saya pun sekarang mengubah teknik saya dan benar-benar menggunakan bchunk. Untuk kesederhanaan, saya menggunakan contoh CD 2 dari Ultimate Worship 2014 yang saya miliki seperti artikel sebelumnya. Persiapan pun sama seperti artikel sebelumnya. Hanya langkah intinya yang berubah sedikit.

Inti Tulisan Ini

Pertama-tama, gunakan bchunk untuk memisahkan PCM mentah menjadi WAV:

bchunk -v -w "Various - Ultimate Worship 2014 [Disc 2].bin" tmp.cue out

Setelah itu, gunakan FLAC untuk mengubah WAV menjadi FLAC. Saya menggunakan konfigurasi baku saja tanpa embel-embel.

flac *.wav

Sisipkan tag ke dalam semua berkas FLAC.

cuetag.sh tmp.cue *.flac

Tambahkan tag-tag lainnya:

metaflac --set-tag='DISCTOTAL=2' --set-tag='DISC=2' --set-tag='album_artist=Various Artists' --import-picture-from=front.jpg out*.flac

Ganti nama berkas FLAC dengan yang lain:

lltag --yes --no-tagging --rename '%n. %a - %t' `ls out*.flac`

Selesai sudah!

Kata Terakhir

Anda sudah dapat memindahkan berkas-berkas FLAC tersebut. Hapus saja berkas-berkas WAV yang telah terbuat. Hasil FLAC ini jauh lebih baik dari sebelumnya.

Oh, iya, catatan terakhir. Komputer yang saya gunakan telah saya set ALSA-nya untuk menggunakan 44,1KHz bukan 48KHz seperti umumnya. Ini karena saya selalu mendengarkan lagu dari CD yang saya beli.

 

Mengubah cue/bin Menjadi Berkas-berkas FLAC

Mengubah cue/bin Menjadi Berkas-berkas FLAC

Saya lupa memasang penggerak CD pada komputer saya. Celakanya lagi, penggerak CD portabel yang biasa saya gunakan rusak. Saya pun terpaksa menggunakan komputer teman yang menggunakan Windoze.

Untungnya, komputer ini kurang mumpuni untuk mengekstrasi CD dengan menggunakan Exact Audio Grabber. Saya pun cari akal untuk membuat ISO dengan aplikasi gratis. Alhasil, saya pun memasang ImgBurn.

Sayangnya, ImgBurn dan aplikasi-aplikasi gratisan lainnya yang saya coba menghasilkan dua berkas CUE dan BIN (cue/bin). Saya pun terpaksa mentransfer dua berkas per CD ke komputer saya.

Memasang Peralatan yang Diperlukan

Ada 4 sekumpulan aplikasi yang dibutuhkan:

  • bchunk
  • shntool
  • cuetools
  • lltag

Untuk Debian/Ubuntu/BlankOn:

sudo apt-get install bchunk shntool cuetools lltag

Untuk Gentoo:

sudo USE="alac flac mac shorten wavpack sox extras" emerge app-cdr/bchunk media-sound/shntool app-cdr/cuetools media-sound/lltag

Jangan lupa pengonversi berkas FLAC (dan WAVPACK bila perlu).

Cara Debian/Ubuntu/BlankOn:

sudo apt-get install flac wavpack

Cara Gentoo:

sudo emerge media-libs/flac media-sound/wavpack

Seharusnya cara Gentoo tidak perlu karena sudah diset untuk dipasang pada pemasangan 4 aplikasi sebelumnya. Sekarang saatnya beraksi!

Ubah Cue/Bin Menjadi Berkas-berkas FLAC yang Terpisah

Sebagai contoh, saya menggunakan CD 2 dari album 2014 Ultimate Worship Edition. CD ini belum ada di FreeDB, tetapi memiliki CD TEXT yang lengkap! Jauh berbeda dengan CD Audio produksi lokal yang kadang suka asal saja membuatnya. Berikut berkas yang saya miliki:

  • Various – Ultimate Worship 2014 [Disc 2].bin
  • Various – Ultimate Worship 2014 [Disc 2].cue
  • Various – Ultimate Worship 2014 [Disc 2].cdt

Proses awal sebelum memulai konversi adalah proses penyuntingan.

Menyunting Berkas CUE

 

CD TEXT tidak sempurna. Dia terkadang tidak berisi informasi yang benar. Sebagai contoh, dalam kasus CD kompilasi, biasanya berisi berikut:

  TRACK 01 AUDIO
    TITLE "The Flood"
    PERFORMER "Various"
    ISRC US25L1300817
    INDEX 01 00:00:00

Saya pun mengubah isi PERFORMER menjadi penyanyi yang sebenarnya sehingga isi berkas CUE menjadi:

  TRACK 01 AUDIO
    TITLE "The Flood"
    PERFORMER "Soul Survivor"
    ISRC US25L1300817
    INDEX 01 00:00:00

Salah satu bagian yang sulit dari menyunting berkas ini adalah ketika ada lebih dari satu penyanyi (featuring). Sepertinya tidak ada konsensus untuk penulisan tag. Beberapa menyarankan untuk mengikuti tulisan di iTunes atau Amazon. Namun, banyak pula yang membuat tagnya sendiri. Saya, sih, sebisa mungkin mengikuti CD TEXT.

Agar lebih mudah, saya mengganti berkas nama CUE menjadi lebih pendek:

cp "Various - Ultimate Worship 2014 [Disc 2].cue" tmp.cue

Mari masuk ke intinya.

Inti Tulisan Ini

Pertama-tama, konversi CD Audio menjadi satu berkas FLAC:

flac --endian=little --channels=2 --bps=16 --sample-rate=44100 --sign=signed --force-raw-format Various\ -\ Ultimate\ Worship\ 2014\ \[Disc\ 2\].bin -o 2014uw-cd2.flac

Pecah-pecah berkas FLAC menjadi berkas-berkas terpisah:

shnsplit -f tmp.cue -o "flac flac -s -8 -o %f -" 2014uw-cd2.flac

Isi berkas-berkas FLAC tersebut dengan tag-tag yang tersedia di dalam CUE.

cuetag.sh tmp.cue split-track*.flac

Tambahkan beberapa tag yang belum ada. Contohnya, saya menambahkan nomor cakram, jumlah cakram, dan artis album diset sebagai “Various Artists”.

metaflac --set-tag='DISCTOTAL=2' --set-tag='DISC=2' --set-tag='album_artist=Various Artists' split-track*.flac

Oh, iya, lupa. Sekalian taruh juga gambar albumnya kalau punya.

metaflac --import-picture-from=front.jpg split-track*.flac

Terakhir, ubah nama berkas menjadi sesuatu yang lebih bermakna. Saya lebih suka namanya “[Nomor Trek]. [Penyanyi] – [Judul Lagu]”. Anda mungkin bisa berbeda dengan saya. Berikut cara yang saya lakukan:

lltag --yes --no-tagging --rename '%n. %a - %t' `ls split-track*.flac`

Yak, terakhir tinggal pindahkan lagu-lagu tersebut ke tempat yang sebenarnya.

Demikian.

Bacaan Lebih Lanjut

Membetulkan “Security Error” pada LG G2

Membetulkan “Security Error” pada LG G2

Saya adalah pengguna LG G2 yang setia mencoba hal baru. Tak sengaja, saya menjalankan aplikasi AutoRec LG G2 yang ada di penyimpan karena penasaran. Alas, aplikasi tersebut memasang sebuah partisi Recovery yang tidak kompatibel. Akibatnya, perangkat G2 saya hanya secara berulang-ulang masuk ke logo dan muncul tulisan “Security Error”.

Beruntung ada trit yang menyediakan cara yang komprehensif untuk flashing dengan ROM mana pun, termasuk ROM awal. Ya, yang penting ROM tersebut dipaketkan dengan ekstensi “.kdz”. Langsung saja!

Satu catatan tambahan, PC yang dipakai adalah Windows 8 punya teman yang sudah dipasangi LG United Mobile Drivers. Ya, seharusnya kalau memakai perkakas Aplikasi LG di PC, penggerak sudah terpasang.

  1. Unduh dan ekstraksi LG Flash Tool 2014.
  2. Unduh salah satu berkas kdz dari situs ini. Yang paling masuk akal sepertinya “Indonesia D80210E_00.kdz” (versi 10E). Sepertinya itu masih versi Jelly Beans. Saya kebetulan pernah meningkatkan ke versi Kit Kat, saya menggunakan berkas saya sendiri yang pernah diunduh, “D80220A_00.kdz”.  Saya tidak tahu legalitas mencerminkan berkas ini, untuk amannya silakan cari sendiri di Internet berkasnya.
  3. Matikan G2 dengan menekan tombol daya lama (ACPI Off). Setelah itu, sambil menekan tombol Volume Naik, hubungkan dengan kabel USB ke PC. Kalau benar, maka G2 akan muncul Download Mode.
  4. Saya pun menjalankan LG Flash Tool 2014. Seperti pada trit awal, pilih CDMA; pilih “DIAG” untuk  Phone Mode; dan terakhir pilih berkas KDZ yang mau dipasang. Begitu memilih KDZ, otomatis LG Flash Tool akan membaca versi firmware yang hendak dipasang.
  5. Pilih Normal Flash untuk memasang sistem atau pilih CSE Flash untuk memasang semua dari awal (termasuk menghapus dokumen). Saya pilih CSE Flash, seharusnya cukup Normal Flash saja. Tapi, waktu itu saya takut kalau tidak beres. Ya, sudahlah, sudah terlanjur.
  6. Selanjutnya akan muncul kotak dialog yang agak besar dan pilih “Start”. Selanjutnya, muncul kotak dialog menanyakan bahasa. Langsung OK saja.
  7. Tunggu beberapa saat dan beres.

Seperti biasa, Android akan mengunduh ulang semua versi Android. Ditambah lagi, G2 akan secara otomatis memberitahukan versi yang terbaru. Silakan gunakan WIFI untuk itu.

Pemasangan versi baru

Pemasangan versi baru

Mencoba CloudyG3
Super Android, recharge!

Mencoba CloudyG3

[themify_box style=”yellow map rounded” ]PERHATIAN: BUKAN UNTUK PEMULA! SAYA TIDAK BERTANGGUNG JAWAB ATAS KERUSAKAN LG G2 ANDA. RISIKO TANGGUNG SENDIRI![/themify_box]

Diasumsikan LG G2 sudah dibebaskan dan sudah dipasangi Recovery (TWRP atau Philz).

Pasang Cloudy ROM

Sebelum mulai, unduh dan taruh ke perangkat LG G2 berkas-berkas berikut:

  1. KK_Baseband_D802.zip

  2. CloudyG3 1.3

Berkas pertama itu untuk penyesuaian baku (factory settings) D802 (LG G2 edisi Internasional) untuk Kit Kat. Berkas kedua adalah ROM Cloudy G3 itu sendiri.

Sekarang tinggal menyalakan ulang telepon untuk masuk ke Recovery. Berhubung tidak ada tombolnya, gunakan ADB dari komputer:

$ adb reboot recovery

Dari Recovery, hapus semua kecuali Internal Storage:

Wipe ⇒ Advanced Wipe ⇒ Pilih partisi yang mau dihapus:

  • Dalvik Cache
  • System
  • Data
  • Cache

Lalu geser tombol Swipe to Wipe untuk melakukan tindakan. Sekali lagi, jangan pilih Internal Storage supaya isi data kita tidak hilang.

Tekan tombol kembali beberapa kali untuk sampai ke halaman depan Recovery. Lalu, pilih Install dan pasang:

KK_Baseband_D802.zip

lalu setelah selesai, pasang

CloudyG3_1.3.zip

Setelah itu, silakan nyalakan ulang telepon dengan Reboot System atau cara yang sejenis.

Pindah dari Dalvik ke ART

ART adalah mesin baru Android pengganti Dalvik. Bila Dalvik menggunakan bytecode yang sudah dikompilasi, maka ART mengompilasi aplikasi pada saat hendak dijalankan pertama kali. Itu sebabnya, aplikasi dengan ART lebih irit tapi membutuhkan ruang lebih banyak dari Dalvik.

Opsi pengembang di LG G2

Opsi Umum pada laman Pengaturan di LG G2

Cara mengaktifkan ART adalah dengan masuk ke Pengaturan ⇒ Umum ⇒ Opsi pengembang.

Opsi pengembang

Opsi pengembang

Pada menu Opsi pengembang, pilihlah Pilih waktu operasi

Pilih Pakai ART untuk menggunakan ART.

Pilih Pakai ART untuk menggunakan ART.

Pilih Pakai ART untuk menggunakan ART. Nanti akan ditanyakan peringatan, jawab untuk melanjutkan dan nyalakan ulang telepon LG G2. Karena ART mengompilasi aplikasi saat memulai, dibutuhkan waktu agak lama untuk memperbaharui aplikasi di Android. Saya sendiri membutuhkan waktu puluhan menit untuk memperbaharui 242 aplikasi di LG G2 saya.

Kalau misalnya Anda terjebak pada layar animasi mulai LG, silakan tekan tombol Daya lama. Seperti tombol ACPI lainnya, LG G2 akan mati secara paksa. Setelah itu, nyalakan kembali perangkat itu. Saya pribadi hanya mengalami ini di awal-awal saja. Beberapa menit setelah pemakaian, telepon saya juga sempat mengalami hang. Namun, setelah di-reset paksa seperti yang telah saya sebutkan sebelumnya, perangkat berjalan normal.

Pasang Bionic Teroptimasi

Unduh berkas LG_G3_BIONIC.zip dari forum dan taruh ke perangkat LG G2. Dalvik tidak perlu karena kita menggunakan ART.

Lalu, lakukan proses yang sama seperti memasang ROM dan Baseband; 1) masuk ke Recovery; 2) pasang LG_G3_BIONIC.zip; dan 3) nyalakan kembali perangkat. Pada proses ini tidak perlu menghapus data apa pun. Bionic adalah pustaka C yang digunakan Android seperti GNU Libc. Bionic digunakan karena masalah lisensi GPL pada GNU Libc.

Yak, selesai.

Fitur CloudyG3 dan Kesan

CloudyG3 sebenarnya adalah ROM LG G3 yang disesuaikan untuk LG G2. Beberapa aplikasi LG yang dirasa tak perlu dihapus mereka (debloated). Jadi, ya, menggunakan LG G2 mirip seperti LG G3 dengan tambahan modul eXposed dan ROOT.

Menambah Perangkat Android Ke Daftar ADB
Super Android, recharge!

Menambah Perangkat Android Ke Daftar ADB

Sering kali perangkat Android gagal dikenali kendati sudah ditambahkan di UDEV. Ketika kita cari perangkat yang terhubung, ADB mengembalikan daftar kosong:

$ adb devices
List of devices attached 



Android ternyata menyediakan cara manual untuk menambahkan perangkat secara manual. Cukup tambahkan satu baris Vendor ID pada berkas adb_usb.ini. Berikut caranya.

Cari tahu Vendor ID untuk perangkat kita. Contohnya LG G2 saya:

$ lsusb
Bus 010 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 011 Device 003: ID 04ca:0030 Lite-On Technology Corp. 
Bus 011 Device 002: ID 076b:5321 OmniKey AG 
Bus 011 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 009 Device 002: ID 04b3:3025 IBM Corp. NetVista Full Width Keyboard
Bus 009 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 067: ID 1004:61f1 LG Electronics, Inc. Optimus Android Phone [LG Software mode]
Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Perhatikan untuk LG G2, Vendor ID-nya adalah 0x1004. Untuk itu, silakan masukkan ke berkas adb_usb.ini

$ echo 0x1004 >> $HOME.android/adb_usb.ini

Jadinya berkas tersebut berisi:

# ANDROID 3RD PARTY USB VENDOR ID LIST -- DO NOT EDIT.
# USE 'android update adb' TO GENERATE.
# 1 USB VENDOR ID PER LINE.
0x1004

Perhatikan bahwa berkas tersebut sebenarnya hasil perintah pembaharuan. Tapi, selama tidak kita lakukan perintah tersebut, daftar takkan terotak-atik. Muat ulang kembali peladen ADB.

$ adb kill-server
$ adb start-server

Kalau benar, maka alatnya ada:

$ adb devices
List of devices attached 
03020af49f549229        device


Semoga membantu. Oh, iya, jangan lupa menyalakan Perunutan USB (USB Debugging) pada perangkat Android. Kalau tidak, sampai kiamat pun takkan pernah bisa terdeteksi.

Bebaskan LG G2 D802 Saya!
Super Android, recharge!

Bebaskan LG G2 D802 Saya!

Tulisan ini dibuat dari

PERINGATAN:

SEMUA INI DAPAT MERUSAK TELEPON ANDA, LG G2. SAYA TIDAK BERTANGGUNG JAWAB ATAS RUSAKNYA TELEPON ANDA. RISIKO TANGGUNG SENDIRI!

Sebelumnya

Di komputer pasang dev-util/android-sdk-update-manager

sudo emerge dev-util/android-sdk-update-manager

Aktifkan Perunutan USB dari Opsi Pengembang.

Pergi ke Pengaturan ⇒ Umum ⇒ Tentang ponsel ⇒ Informasi perangkat lunak

Tekan sekitar tujuh kali pada Versi perangkat lunak

Lalu, kembali dan masuk ke Opsi pengembang.

Aktifkan Perunutan USB dari Modus Pengembang

Aktifkan Perunutan USB (USB Debugging) dari Opsi Pengembang

Tekan Pilih untuk mengaktifkan konfirmasi.

Berikan otorisasi kepada komputer yang kita gunakan untuk melakukan pemasangan.

Berikan otorisasi kepada komputer yang kita gunakan untuk melakukan pemasangan.

Spesifikasi

Berikut dari telepon

 

Spesifikasi Telepon LG G2 saya

Spesifikasi Telepon LG G2 saya sebelum dibongkar

Pesan dari lsusb

Bus 007 Device 026: ID 1004:61f1 LG Electronics, Inc. Optimus Android Phone [LG Software mode]

Berikut pesan dari dmesg

[317809.731719] usb 7-4: new high-speed USB device number 25 using ehci-pci
[317809.882599] usb 7-4: New USB device found, idVendor=1004, idProduct=631f
[317809.882602] usb 7-4: New USB device strings: Mfr=2, Product=3, SerialNumber=4
[317809.882603] usb 7-4: Product: LGE Android Phone
[317809.882604] usb 7-4: Manufacturer: LG Electronics Inc.
[317809.882605] usb 7-4: SerialNumber: 03020af49f549229

Berikut pesan dari adb devices

List of devices attached 
03020af49f549229        device

Saatnya dibongkar

Unduh berkas dengan pergi ke laman unduhan.

Buka berkas Zip dan masuk ke dalam direktori.

unzip ioroot.zip && cd ioroot/bts

Sebenarnya ioroot sudah menyediakan adb versi GNU/Linux (adblinux). Tapi, saya lebih memilih menggunakan adb yang telah dipasang ke sistem (lewat paket dev-util/android-sdk-update-manager). Lebih barokah. 🙂

Perintahkan telepon ke recovery

adb reboot recovery

Tunggu beberapa saat untuk telepon menyalakan kembali dirinya. Bila benar, akan muncul menu recovery. Gunakan tombol volume untuk naik dan turun.

Pilih menu apply update from adb

Lalu, dari komputer kirim perintah [PASTIKAN ANDA MASIH DI DIREKTORI bts]

adb sideload datroot.zip

Kalau sudah benar, akan ada gambar ASCII art “Dat Root” dan terakhir tulisan “Install from ADB Complete”.

Silakan pilih reboot system now untuk kembali masuk ke mode normal.

Terakhir

Pergi ke toko Google Play Store dan pasang aplikasi SuperSU.

Selesai.