Lambda expression atau anonymous method adalah cara sederhana dalam "memulai" suatu thread baru. Misalkan dibuat thread baru yang belum menggunakan lambda expression :
Line 13 dan 14 adalah cara umum untuk memulai suatu thread. Jika menggunakan lambda expression :
Line ke 19 adalah bentuk lambda expressionnya. Hasil yang diperoleh :
Variasi lamda expression yang lain dapat dilihat pada line 23 - 24 dengan menggunakan fungsi print yang terdapat pada line 28 - 32 :
Hasil yang diperoleh :
Variasi ketiga :
Cuman variasi yang ketiga ini tidak melakukan apa-apa. Belum tau kenapa :-3. Sekalipun diubah menjadi :
Yang ini juga g' jalan :
Tapi jika dibuat dalam project yang baru :
Nah baru ada outputnya :
Heeemm... intinya semua variasi bisa dijalanin, cuman variasi yang ketiga ini baru bisa klu dibuat dalam project baru. Moga nanti bisa ketahuan masalahnya apa.... ;-)
Saturday, February 28, 2015
HAX Kernel Module is Not Installed
Error ini terjadi ketika kita pertama kali akan merunning virtual device di android studio. So untuk mengatasinya, cek pada android studio apakah HAX ini bener-benar telah terinstall...?? Caranya buka SDK Manager :
atau :
setelah kebuka, scroll ke bawah (paling bawah) :
Setelah itu, enable fitur "hardware virtualization" pada settingan BIOS komputer :
Setelah itu install "intelhaxm-android.exe" yang terdapat pada C:\Users\namakomputerAnda\AppData\Local\Android\sdk\extras\intel\Hardware_Accelerated_Execution_Manager :
Cuman, lokasi intelhaxm-android itu dihidden secara default oleh windows, oleh sebab itu folder yang hidden di unhidden dulu.
Nah setelah intelhaxm-android tersebut diinstall, maka emulator androidnya sudah dapat dijalankan. Eeeem... tambahan.... intehaxm itu cuma dapat diinstall di PC intel, klu PC AMD g' bisa ternyata... :3
atau :
setelah kebuka, scroll ke bawah (paling bawah) :
Setelah itu, enable fitur "hardware virtualization" pada settingan BIOS komputer :
Cuman, lokasi intelhaxm-android itu dihidden secara default oleh windows, oleh sebab itu folder yang hidden di unhidden dulu.
Nah setelah intelhaxm-android tersebut diinstall, maka emulator androidnya sudah dapat dijalankan. Eeeem... tambahan.... intehaxm itu cuma dapat diinstall di PC intel, klu PC AMD g' bisa ternyata... :3
Fitur "join" dalam thread
Di sini diperlihatkan program yang sederhana untuk menunjukkan penggunaan join dalam suatu thread. Seperti terlihat pada namanya, join berguna untuk menggabungkan suatu thread. Namun sebelum digabungkan, thread yang akan bergabung tersebut dieksekusi dulu sampai selesai. Ilustrasinya seperti terlihat di bawah:
Pada contoh program diatas, fitur join belum digunakan, oleh sebab itu, ketika thread t dieksekusi (t.Start()), maka console juga akan langsung memprint text "Thread t has ended", seperti terlihat :
Nah jika fitur t.join diidupin :
Karena fitur join udah aktif, berarti "hellow Hisoka..." akan diprint dulu sampai selesai baru "Thread t has ended" keluar. Hal tersebut seperti diutarakan diatas, bahwa thread dieksekusi dulu sampai selesai kemudian digabungkan dengan thread utama. Hasilnya seperti terlihat di bawah :
Untuk fitur-fitur yang lain dapat dipelajari dari :
www.albahari.com/threading/
Pada contoh program diatas, fitur join belum digunakan, oleh sebab itu, ketika thread t dieksekusi (t.Start()), maka console juga akan langsung memprint text "Thread t has ended", seperti terlihat :
Nah jika fitur t.join diidupin :
Karena fitur join udah aktif, berarti "hellow Hisoka..." akan diprint dulu sampai selesai baru "Thread t has ended" keluar. Hal tersebut seperti diutarakan diatas, bahwa thread dieksekusi dulu sampai selesai kemudian digabungkan dengan thread utama. Hasilnya seperti terlihat di bawah :
Untuk fitur-fitur yang lain dapat dipelajari dari :
www.albahari.com/threading/
Wednesday, February 18, 2015
Building Android ROM from Source Part II
Setelah source code androidnya selesai didonload sepeti yang terdapat pada part I, maka dalam directory android_sourceV0 terdapat beberapa folder seperi terlihat di bawah :
Ok.... berikutnya silahkan buka terminal pada Ubuntunya, kemudian masuk ke directory dimana source codenya berada. Kemudian eksekusi command :
Source build/envsetup.sh atau boleh juga .build/envsetup.sh
Hasilnya :
Setelah itu ketik "lunch",
Nah...silahkan pilih nomer yang mau dibuild. Untuk ngecocokin HP/tablet mw dibuild, silahkan lihat tabel dibawah :
Untuk list device yang lain silahkan cari lewat google atw xda-developer... :D
Karena romnya nanti bakal diflash ke nexus 7 yang wifi saja, jadi disini dipilih nomor 12.
Nah... yang terakhir adalah command "make". Nah perintah "make" ini ada beberapa variasi yang boleh digunakan, tapi klu mau default, boleh langsung ketik "make" aja. Beberapa variasinya antara lain :
So... silahkan pilih variasi command make-nya. Kemudian tunggu sampe selese. Make ini lumayan nunggu lama, klu dirunning di kmputer dual core, dengan 4G RAM, umumnya butuh waktu kurang lebih 5 jam.... Ok.Disini digunakan yang default saja, soalnya dibuild di virtual box. Dan hasilnya :
Ooooopzzz... ternyata javanya error hehehehe.... :D
Mmm... Katanya disini kita menggunakan OpenJDK tetapi hanya Sun/Oracle JDK yang disupport. Sow... Coba kita install dulu java yang dari Sun/Oracle. Pertama-tama tambahkan repository baru dengan command :
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
Nah...setelah diupdate lagi, masukkan command :
sudo apt-get install oracle-java6-installer
Setelah masukin Y, enter,,.. tar oraclenya minta kita untuk menyetujui lisensinya :
Sampe sini tekan enter aja... terus pilih yes :
Setelah itu silahkan tunggu smpe selese... Emmm..sebenarnya install oracle java ini baiknya dibagian 1. Tapi yaaah... ggp lah yah klu disini.... :D. Mungkin sebaiknya ditambahkan juga aja oracle 7 :
sudo apt-get install oracle-java7-installer
Langkah-langkahnya sama dengan java6 di atas. Setelah oracle java7 tersebut diinstall, berarti sekarang kita mempunyai beberapa versi java baik itu yang dari oracle ataupun openjdk. Nah untuk dapat mengubah default java yang digunakan dapat digunakan command :
sudo update-alternatives --config java
Nah terlihat, klu java yang sekarang itu adalah java7 yang dari oracle {terlihat dari tanda asteriknya}, jadi klu misalkan mw pindah ke java6, silahkan masukkan nomor 2 terus enter.
Setelah itu intuk mengubah default java untuk compilernya, masukkan command :
sudo update-alternatives --config javac
Untuk memastikan bahwa java dan javacnya sama, masukkan :
java -version
javac -version
Terlihat java dan javacnya sama yaitu 1.6.0_45.
Ok...Hisoka pikir cukup sampai disini bincang2 seputar javanya. Kita kembali ke android. Skrg karena javanya berubah, berarti kita start dari awal lagi, so masukkan command :
source build/envsetup.sh {seperti diatas} kemudian lunch, terus pilih yang nomor 12. setelah selesai... Coba kita running command "make" lagi...... daaaaan... hasilnya :
Alhamdulillaaah..... Berhasilll... Sekarang tinggal nunggu sampe selese. Moga2 g' ada yang error..... ;-)
Nanti setelah selese, didalam folder out, kita dapat file dengan ekstensi .img. Nah file inilah yang akan kita flash ke nexus 7nya....
Dan ternyata ditengah2 perjalanan ada yang error. Seperti terlihat di bawah :
Eeeemmm..... nggggg...........heuuuum.................... Disitu errornya dibilang Anda telah telah mengganti API dst..... padahal g' ngapain2 ko'... :3
Ok....setelah nanya2 diforum, pertanyaannya bisa dilihat di sini. Katanya baiknya kode program yang ada difile 19.txt itu diapus aja. Dan setelah Poipo hapus, ada error yang baru wkwkwkw...
Kita lihat pada pesan errornya, kalo mw ngilangin error itu bisa pake 2 langkah seperti terlihat. Naah. Ummm.. disini dipilih langkah yang kedua aja.. make update-api, mari kita coba.... :D
Daaan.... hasilnya sampai saat ini masih OK.....moga2 udah g' ada yang error sampe selese...Aaamiin..
*akan diupdate lagi klu ada yang error... ;-)
Sekian semoga bermanfaat.... :-)
Ok.... berikutnya silahkan buka terminal pada Ubuntunya, kemudian masuk ke directory dimana source codenya berada. Kemudian eksekusi command :
Source build/envsetup.sh atau boleh juga .build/envsetup.sh
Hasilnya :
Setelah itu ketik "lunch",
Nah...silahkan pilih nomer yang mau dibuild. Untuk ngecocokin HP/tablet mw dibuild, silahkan lihat tabel dibawah :
Untuk list device yang lain silahkan cari lewat google atw xda-developer... :D
Karena romnya nanti bakal diflash ke nexus 7 yang wifi saja, jadi disini dipilih nomor 12.
Nah... yang terakhir adalah command "make". Nah perintah "make" ini ada beberapa variasi yang boleh digunakan, tapi klu mau default, boleh langsung ketik "make" aja. Beberapa variasinya antara lain :
- make installclean. Perintah ini akan membuat build yang baru dengan menghapus output prepared/package file.
- make clean. ampir sama dengan installclean yaitu menghapus build yang sudah tua.
- make -j4. ini untuk processor yang punya 4 core hasil buildnya berupa .img, klu mw dibikin file zip pake yang ini "make -j4 otapackage"
So... silahkan pilih variasi command make-nya. Kemudian tunggu sampe selese. Make ini lumayan nunggu lama, klu dirunning di kmputer dual core, dengan 4G RAM, umumnya butuh waktu kurang lebih 5 jam.... Ok.Disini digunakan yang default saja, soalnya dibuild di virtual box. Dan hasilnya :
Ooooopzzz... ternyata javanya error hehehehe.... :D
Mmm... Katanya disini kita menggunakan OpenJDK tetapi hanya Sun/Oracle JDK yang disupport. Sow... Coba kita install dulu java yang dari Sun/Oracle. Pertama-tama tambahkan repository baru dengan command :
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
Nah...setelah diupdate lagi, masukkan command :
sudo apt-get install oracle-java6-installer
Setelah masukin Y, enter,,.. tar oraclenya minta kita untuk menyetujui lisensinya :
Sampe sini tekan enter aja... terus pilih yes :
Setelah itu silahkan tunggu smpe selese... Emmm..sebenarnya install oracle java ini baiknya dibagian 1. Tapi yaaah... ggp lah yah klu disini.... :D. Mungkin sebaiknya ditambahkan juga aja oracle 7 :
sudo apt-get install oracle-java7-installer
Langkah-langkahnya sama dengan java6 di atas. Setelah oracle java7 tersebut diinstall, berarti sekarang kita mempunyai beberapa versi java baik itu yang dari oracle ataupun openjdk. Nah untuk dapat mengubah default java yang digunakan dapat digunakan command :
sudo update-alternatives --config java
Nah terlihat, klu java yang sekarang itu adalah java7 yang dari oracle {terlihat dari tanda asteriknya}, jadi klu misalkan mw pindah ke java6, silahkan masukkan nomor 2 terus enter.
Setelah itu intuk mengubah default java untuk compilernya, masukkan command :
sudo update-alternatives --config javac
Untuk memastikan bahwa java dan javacnya sama, masukkan :
java -version
javac -version
Ok...Hisoka pikir cukup sampai disini bincang2 seputar javanya. Kita kembali ke android. Skrg karena javanya berubah, berarti kita start dari awal lagi, so masukkan command :
source build/envsetup.sh {seperti diatas} kemudian lunch, terus pilih yang nomor 12. setelah selesai... Coba kita running command "make" lagi...... daaaaan... hasilnya :
Alhamdulillaaah..... Berhasilll... Sekarang tinggal nunggu sampe selese. Moga2 g' ada yang error..... ;-)
Nanti setelah selese, didalam folder out, kita dapat file dengan ekstensi .img. Nah file inilah yang akan kita flash ke nexus 7nya....
Dan ternyata ditengah2 perjalanan ada yang error. Seperti terlihat di bawah :
Ok....setelah nanya2 diforum, pertanyaannya bisa dilihat di sini. Katanya baiknya kode program yang ada difile 19.txt itu diapus aja. Dan setelah Poipo hapus, ada error yang baru wkwkwkw...
Kita lihat pada pesan errornya, kalo mw ngilangin error itu bisa pake 2 langkah seperti terlihat. Naah. Ummm.. disini dipilih langkah yang kedua aja.. make update-api, mari kita coba.... :D
Daaan.... hasilnya sampai saat ini masih OK.....moga2 udah g' ada yang error sampe selese...Aaamiin..
*akan diupdate lagi klu ada yang error... ;-)
Sekian semoga bermanfaat.... :-)
Tuesday, February 17, 2015
11. Commands Part 1 - 102 221 v8
Berikut diterjemahkan bab 11 dari ETSI TS 102 221 v8. Beberapa istilah yang perlu diketahui yaitu :
- MF = Master File
- DF = Dedicated File
- ADF = Application Dedicated File
- CLA = CLAss
- INS = Instruction
- Lc = Length Command
- Le = Length Expected
- RFU = Reserved for Future Use
- SFI = Short File Identifier
11.1 Generic Commands
Bab berikut mendaftar basic command dan responnya yang digunakan oleh aplikasi yang terdapat pada UICC. Dalam hal ini tergantung tiap aplikasi untuk menentukan command mana yang akan digunakan. Jika suatu aplikasi tidak mensupport suatu command, dia harus mengembalikan status word yang sesuai seperti yang dijelaskan pada 10.2.
11.1.1 SELECT
11.1.1.1 Functional Description
Fungsi ini (command SELECT) memilih suatu file sesuai dengan suatu methods yang dijelaskan pada bab 8.4. Setelah proses pemilihan tersebut berhasil, record pointer dan pointer tag saat ini menjadi tidak terdefinisi.
Input :
- File ID, application ID, path atau empty.
Output :
- Jika file yang dipilih ada MF, DF, atau ADF:
- File ID, ukuran total file, PIN status dan data yang spesifik pada aplikasi
- Jika file yang dipilih adalah EF:
- File ID, ukuran file, ukuran total file, access condition, indikator invalidated/not invalidated, struktur EF, panjang record dalam kasus linear fixed structure atau cyclic structure dan reserved dan ukuran file maksimum untuk kasus struktur BER-TLV.
11.1.1.2 Command Parameters and Data
Jika P1='00' dan data field kosong, maka P2 harus diset ke '0C' (No data returned). Maka MF diset sebagai current directory.
Untuk mencegah ambiguitas ketika P1='00', urutan pencarian dibawah berlaku ketika memilih file dengan file ID dengan parameter :
- Children langsung dari current DF;
- Parent dari DF;
- Childrend langsung dari parent DF;
Ketika P1 != '04', bit b2 dan b1 dari P2 tidak mempunyai arti apa-apa dan harus diset ke '0'.
Ketika P1 = '04', (i.e pemilihan dengan AID), AID yang terpotong dapat dispesifikasikan pada data field.
11.1.1.3 Response Data
Data respon berisi template File Control Parameter (FCP) dari file yang terpilih. Isi FCP tersebut tergantung dari file yang terpilih. Lihat keterangan berikutnya untuk daftar TLV yang dikembalikan untuk tiap case.
Untuk mengambil semua template FCP, maka Le harus diset ke '00'.
Nilai dari data object untuk FCP template seperti ditunjukkan pada sub bab 11.1.1.3.1. Data object sifatnya mandatory pada FCP template yang digunakan untuk mendeskripsikan setiap response. Data object yang baru dapat ditambahkan ke akhir dari respon data. Terminal tidak akan memperhatikan data object dengan tag yang tidak dapat disupport.
11.1.1.3.1 Response untuk MF, DF, atau ADF
Sub bab ini memperlihatkan daftar TLVyang dikembalikan ketika MF, DF, atau ADF dipilih.
11.1.1.3.2 Response for an EF
Berikut diperlihatkan daftar TLV yang dikembalikan ketika memilih EF.
11.1.1.4 File Control Parameters
11.1.1.4.1 File Size
MSB byte terletak pada bagian pertama pada value field.
Untuk transparent EF, ukuran file adalah panjang dari bagian body dari EF, dan untuk liner fixed atau cyclic EF, ukuran filenya adalah panjang recordnya dikali dengan jumlah record dari EF. Untuk BER-TLV structure EF, ukuran file sifatnya mandatory digunakan oleh data object yang telah teralokasi.
11.1.1.4.2 Total File Size
MSB terletak dibagian pertama pada value field.
Untuk EF, total file size menggambarkan alokasi memory untuk isi dan informasi struktural (jika ada) dari EF ini.
Untuk BER-TLV structure EF, informasi struktural harus memasukkan suatu administrasi overhead yang dibutuhkan untuk object TLV di file. Jika reserved file size sesuai dengan subab 11.1.1.4.6.Y didefinisikan untuk suatu file, setiap ruang memory, yang dialokasikan untuk file ini tetapi tidak sedang digunakan, harus dimasukkan dalam total file size.
Untuk DF, total file size menggambarkan jumlah dari total file size dari semua EF dan DF yang terdapat dalam DF ini ditambah jumlah memory yang tersedia dari DF ini. Ukuran dari informasi struktural dari DF yang terpilih tidak dimasukkan dalam total file size.
11.1.1.4.3 File Descriptor
* File Descriptor.
Isi : file descriptor menspesifikasikan aksesibilitas dari suatu file, type file, dan strukturnya.
Format : lihat tabel 11.5 di bawah.
* Data coding byte.
Format : Format data byte seperti yang terdapat pada ISO/IEC 7816-4. Nilai aktual tidak boleh dicek atau digunakan oleh terminal.
* Record Length.
Isi : record length menspesifikasikan panjang record ketika suatu record structured file terpilih.
Format : record length harus ada jika suatu record structured file (i.e untuk linear fixed atau cyclic files) terpilih. Dalam kasus ini, dia menunjukkan panjang record pada 2 byte. MSB terletak dibagian pertama pada value field.
* Number of records.
Isi : jumlah record menspesifikasikan jumlah record pada record structured file.
Format : jumlah record harus ada jika record structured file (i.e untuk linear atau cyclic files) dipilih. Pada kasus ini, dia menunjukkan jumlah record pada 1 byte saja.
11.1.1.4.4 File Identifier
11.1.1.4.5 DF Name
DF name adalah suatu string byte, AID, yang digunakan secara unik untuk mengidentifikasi suatu aplikasi dedicated file pada card.
11.1.1.4.6 Proprietary Information
Deskripsi constructed TLV object seperti terlihat di bawah.
Object TLV berikut didefinisikan untuk template proprietary (tag 'A5'). Object private TLV tambahan (bit b7 dan b8 dari byte pertama diset ke '1') mungkin ada setelah object TLV didefinisikan. Sebagai contoh, untuk suatu perusahaan manufaktur, pemberi, atau provider aplikasi, object TLV yang spesifik mungkin saja ada. Jika lebih satu TLV object dengan tag yang sama ditunjukkan pada constructed TLV, mereka harus digroupkan bersama sebagai suatu urutan/rangkaian untuk menspesifikasikan kegunaannya masing-masing.
Suatu aplikasi dapat memberi lebih dari satu konsumsi daya untuk aplikasi atau minimum application clock frequency data object.
11.1.1.4.6.1 UICC Characteristics
Jika bit b1 diset ke '1', penghentian clock diperbolehkan pada level tinggi atau rendah. Pada kasus ini, bi1 b3 dan b4 memberi informasi mengenai level pilihan (tinggi atau rendah) pada saat clock akan dihentikan.
Jika bit b1 diset ke '0', clock dapat dihentikan hanya jika kondisi mandatory b3 = '1' (i.e distop pada level tinggi) atau b4 = '1' (distop pada level rendah) dipenuhi. Jika semua 3 bit tersebut diset ke '0', maka clock tidak boleh dihentikan.
Supply voltage class, seperti didefinisikan pada 6.2.1, disupport jika bit diset ke '1'. Jika voltage class tidak disupport, maka akan diset ke '0'.
11.1.1.4.6.2 Application Power Consumption
Konsumsi daya suatu aplikasi ditunjukkan dengna tag '81' dalam constructed TLV object. Byte pertama menunjukkan suply voltage dimana konsumsi power dihitung. Format byte ini sama dengan suply voltage class yang ditunjukkan pada ATR, lihat tabel 6.1. Bit yang tidak digunakan diset ke RFU. Byte kedua menunjukkan konsumsi daya dalam mA (milli ampere). Bit b8 dan b7 adalah RFU. Bit b6 ke b1 menunjukkan konsumsi power dari aplikasi dalam mA. Konsumsi power ini dihitung pada frekuensi yang ditunjukkan pada field "Power consumption reference frequency" dari suatu aplikasi, nilai rata-rata diatas 1 ms atau maksimum clock frequency yang didukung oleh UICC jika tidak ada informasi yang diberikan. Terminal tidak akan memperhatikan nilai konsumsi power jika diset ke '00' dan 'FF'. Nilai yang lebih tinggi dari '3C' tidak akan diterjemahkan oleh terminal dan tidak akan digunakan, tetapi terminal masih tetap boleh menggunakan aplikasi ini.
Terminal akan mengevaluasi nilai konsumsi power yang diberikan pada respond command. Jika power supply class yang ditunjukkan pada respon tersebut tidak sedang digunakan, terminal akan melakukan perhitungan ulang sesuai nilai supply voltage kelas tersebut. Terminal harus menerima aplikasi tersebut jika hasil rekalkulasinya berada dalam batas-batas supply voltage class yang digunakan oleh terminal. Terminal dapat menerima suatu aplikasi yang melebihi nilai spesifikasi jika dia mensupport konsumsi power yang ditunjukkan oleh aplikasi.
Power consumption reference frequency disimbolkan dalam format hexadecimal. Resolusinya adalah 0,1 MHz, contohnya '0A' adalah 1 MHz dan 'FE' adalah 25,4 MHz. Nilai 'FF' menunjukkan bahwa tidak ada referensi frequency.
11.1.1.4.6.3 Minimum Application Clock Frequency
Minimum clock frequency dari suatu aplikasi ditandai dengan tag '82' dalam object TLV. TLB ini menunjukkan keterminal minimum clock frequency yang dibutuhkan aplikasi. Tergantung aplikasi untuk menspesifikasikan nilai yang dibutuhkan untuk suatu command atau prosedur tertentu untuk dieksekusi dalam waktu yang dibutuhkan. Suatu aplikasi dapat menunjukkan satu atau lebih minimum clock frequency jika dibutuhkan. Dalam kasus lebih dari satu object TLV yang ditunjukkan, maka tergantung aplikasi untuk menspesifikasikan untuk tujuan apa perbedaan nilai tersebut digunakan, contohnya urutan object TLV dalam TLV yang bersangkutan.
Minimum clock frequency dituliskan dalam format hexadecimal. Resolusinya adalah 0,1 MHz, contohnya '0A' adalah 1 MHz, dan 'FE' sama dengan 25,4 MHz. Jika object TLV ini tidak ada atau nilainya adalah 'FF', maka tidak ada minimum clock frequency yang ditunjukkan.
11.1.1.4.6.4 Amount of Available Memory
Minimum clock frequency dituliskan dalam format hexadecimal. Resolusinya adalah 0,1 MHz, contohnya '0A' adalah 1 MHz, dan 'FE' sama dengan 25,4 MHz. Jika object TLV ini tidak ada atau nilainya adalah 'FF', maka tidak ada minimum clock frequency yang ditunjukkan.
11.1.1.4.6.4 Amount of Available Memory
Jumlah memory yang tersedia untuk pembuatan DF atau EF pada DF yang terpilih (dan ADF pada/dibawah MF) atau untuk pembuatan object TLV pada BER-TLV structure EF.
MSB terletak pada byte pertama pada field value.
Untuk BER-TLV structured EF, nilai ini adalah nilai byte maksimum yang tersedia pada EF untuk TLV object berikutnya yang akan dibuat. Nilai tersebut juga harus memasukkan kapasitas yang dibutuhkan untuk tag dan field length. Jika ukuran file maksimum didefinisikan untuk file tersebut, nilai tersebut tidak boleh berlebih, jika object dibuat dengan size yang tersedia yang telah ditunjukkan sebelumnya.
Sebagai contoh, jika jumlah space yang tersedia adalah 100 byte, ini berarti terminal dapat menyimpan object TLV dengan 2 byte tag, 1 byte length, dan 97 byte untuk datanya.
11.1.1.4.6.5 File Details
MSB terletak pada byte pertama pada field value.
Untuk BER-TLV structured EF, nilai ini adalah nilai byte maksimum yang tersedia pada EF untuk TLV object berikutnya yang akan dibuat. Nilai tersebut juga harus memasukkan kapasitas yang dibutuhkan untuk tag dan field length. Jika ukuran file maksimum didefinisikan untuk file tersebut, nilai tersebut tidak boleh berlebih, jika object dibuat dengan size yang tersedia yang telah ditunjukkan sebelumnya.
Sebagai contoh, jika jumlah space yang tersedia adalah 100 byte, ini berarti terminal dapat menyimpan object TLV dengan 2 byte tag, 1 byte length, dan 97 byte untuk datanya.
11.1.1.4.6.5 File Details
Indikator dari format TLV yang disupport oleh BER TLV structured EF.
* Pengkodean nilai detail untuk file access :
Byte tambahan dapat ditambahkan pada value field.
11.1.1.4.6.6 Reserved File Size
Ukuran memory yang disimpan/dicadangkan untuk file ini dan tidak dapat dialokasikan untuk entiti yang lain.
MSB terletak pada urutan byte pertama pada value field.
Nilai tersebut harus memasukkan administrative overhead (jika ada) yang dibutuhkan untuk menyimpan object TLV, tetapi bukan structural information untuk file itu sendiri. Maka ukuran file sebenarnya digunakan yang dihitung sesuai dengan sub 11.1.1.4.1 dapat lebih kecil.
Jika tidak ada memory yang tersedia untuk file, maka nilai 'Reserved File Size' akan diset ke 0.
11.1.1.4.6.7 Maximum File Size
Adalah ukuran file yang tidak boleh dilewati.
MSB terletak pada byte pertama dalam field value.
Field value tersebut harus memasukkan administrative overhead (jika ada) yang dibutuhkan untuk menyimpan object TLV, tetapi bukan structural information untuk file itu sendiri. Maka ukuran file yang digunakan sebenarnya yang dihitung dari sub 11.1.1.4.1 dapat menjadi lebih kecil.
Jika tidak ada nilai ukuran file maksimum untuk suatu file, maka maksimum file size object tidak ada untuk file tersebut, dan semua memory yang tersedia pada UICC dapat dialokasikan untuk file ini.
11.1.1.4.6.8 Supported System Commands
*Coding dari command field yang disupport :
Byte tambahan dapat ditambahkan pada field value.
Aplikasi pada UICC yang membutuhkan daya yang lebih besar dari konsumsi daya minimum yang didefnisikan pada tabel 6.4 dapat menggunakan indikasi "TERMINAL CAPABILITY is supported" untuk meminta terminal untuk menunjukkan kemampuannya sesuai dengan konsumsi daya tambahan yang disupport menggunakan TERMINAL CAPABILITY command. Penggunaan fitur ini tergantung pada aplikasi untuk menspesifikasikannya. Jika suatu aplikasi tidak menggunakan mekanisme ini, maka aplikasi tersebut harus digunakan seperti yang didefinisikan pada document standard ini.
11.1.1.4.6.9 Specific UICC Environmental Conditions
Object TLV ini menunjukkan kepada terminal kondisi spesifik yang disupport oleh UICC. Object TLV ini sifatnya mandatory jika UICC mendukung kondisi lingkungan spesifik tersebut. Hal ini tergantung pada terminal untuk mengevaluasi object dan bagaimana menyikapinya/memberikan aksi untuk object tersebut.
11.1.1.4.7 Security Attributes
11.1.1.4.7.1 Compact Format
Nilai AM byte didefinisikan pada ISO/IEC 7816-4. Jumlah SC byte tergantung pada nilai dari AM byte. Terdapat SC byte jika tidap bit diset ke '1' pada AM byte kecuali untuk byte b8. Nilai dari SC byte juga didefinisikan pada ISO/IEC 7816-4.
11.1.1.4.7.2 Expanded Format
11.1.1.4.7.3 Referenced to Expanded Format
Jika panjang data yang mengikuti tag '8B' = '03', definisi di bawah berlaku.
Jika panjang data yang mengikuti tag '8B' adalah '02' + X x '02', definisi di bawah berlaku.
11.1.1.4.8 Short File Identifier
Jika tidak ada TLV, maka nilai SFI adalah 5 LSB bit (bit b5 sampai b1) dari file identifier.
Jika ada TLV tetapi kosong (panjangnya 0), maka SFI ini tidak disupport untuk file yang terpilih.
Jika panjang TLV adalah 1, maka nilai SFI adalah 5 MSB bit (b8 sampai b4) dari nilai TLV. Dalam kasus ini, bit b3 sampai b1 diset ke 0.
11.1.1.4.9 Life Cycle Status Integer
11.1.1.4.10 PIN Status Template DO
Object TLV ini berisi informasi PIN status untuk DF/ADF dan dimana PIN digunakan untuk mengakses DF/ADF dan file-file dibawahnya. PIN ditunjukkan pada object data ini menggunakan key reference tag '83' seperti didefinisikan pada ISO/IEC 7816-4. Isi dari constructed PIN status pada TLV Data Object dengan tag 'C6' bergantung pada panjangnya.
Penggunaan qualifier DO menunjukkan jika key reference data object (PIN) yang mengikutinya digunakan untuk verifikasi atau tidak. Jika terdapat object data, maka dia harus didahului oleh key reference data object yang berhubungan dengannya.
Untuk format PS_DO lihat sub bab 9.5.2. Untuk setiap bit yang diset ke '1' pada PS byte, key yang bersesuaian pada PS template, DO dienabled. Jumlah key reference dengan tag '83' menunjukkan berapa banyak PIN yang berbeda yang digunakan untuk mengakses DF yang terpilih dan anak2nya.
11.1.2 STATUS
11.1.2.1 Functional Description
Fungsi ini mengembalikan informasi yang berhubungan dengan current directory atau current application. Selain itu, sesuai dengan spesifikasi pada aplikasi, dia dapat digunakan untuk menunjukkan aplikasi pada UICC bahwa prosedur sesi aktivasinya telah berhasil dieksekusi atau prosedur terminasinya telah berhasil dieksekusi.
Catatan. Indikasi tersebut dapat digunakan untuk melakukan sinkroniasi aplikasi pada terminal dan UICC.
Input : * tidak ada
Output :
* Salah satu dari :
* Pengkodean nilai detail untuk file access :
Byte tambahan dapat ditambahkan pada value field.
11.1.1.4.6.6 Reserved File Size
Ukuran memory yang disimpan/dicadangkan untuk file ini dan tidak dapat dialokasikan untuk entiti yang lain.
MSB terletak pada urutan byte pertama pada value field.
Nilai tersebut harus memasukkan administrative overhead (jika ada) yang dibutuhkan untuk menyimpan object TLV, tetapi bukan structural information untuk file itu sendiri. Maka ukuran file sebenarnya digunakan yang dihitung sesuai dengan sub 11.1.1.4.1 dapat lebih kecil.
Jika tidak ada memory yang tersedia untuk file, maka nilai 'Reserved File Size' akan diset ke 0.
11.1.1.4.6.7 Maximum File Size
Adalah ukuran file yang tidak boleh dilewati.
MSB terletak pada byte pertama dalam field value.
Field value tersebut harus memasukkan administrative overhead (jika ada) yang dibutuhkan untuk menyimpan object TLV, tetapi bukan structural information untuk file itu sendiri. Maka ukuran file yang digunakan sebenarnya yang dihitung dari sub 11.1.1.4.1 dapat menjadi lebih kecil.
Jika tidak ada nilai ukuran file maksimum untuk suatu file, maka maksimum file size object tidak ada untuk file tersebut, dan semua memory yang tersedia pada UICC dapat dialokasikan untuk file ini.
11.1.1.4.6.8 Supported System Commands
*Coding dari command field yang disupport :
Byte tambahan dapat ditambahkan pada field value.
Aplikasi pada UICC yang membutuhkan daya yang lebih besar dari konsumsi daya minimum yang didefnisikan pada tabel 6.4 dapat menggunakan indikasi "TERMINAL CAPABILITY is supported" untuk meminta terminal untuk menunjukkan kemampuannya sesuai dengan konsumsi daya tambahan yang disupport menggunakan TERMINAL CAPABILITY command. Penggunaan fitur ini tergantung pada aplikasi untuk menspesifikasikannya. Jika suatu aplikasi tidak menggunakan mekanisme ini, maka aplikasi tersebut harus digunakan seperti yang didefinisikan pada document standard ini.
11.1.1.4.6.9 Specific UICC Environmental Conditions
Object TLV ini menunjukkan kepada terminal kondisi spesifik yang disupport oleh UICC. Object TLV ini sifatnya mandatory jika UICC mendukung kondisi lingkungan spesifik tersebut. Hal ini tergantung pada terminal untuk mengevaluasi object dan bagaimana menyikapinya/memberikan aksi untuk object tersebut.
11.1.1.4.7 Security Attributes
11.1.1.4.7.1 Compact Format
Nilai AM byte didefinisikan pada ISO/IEC 7816-4. Jumlah SC byte tergantung pada nilai dari AM byte. Terdapat SC byte jika tidap bit diset ke '1' pada AM byte kecuali untuk byte b8. Nilai dari SC byte juga didefinisikan pada ISO/IEC 7816-4.
11.1.1.4.7.2 Expanded Format
11.1.1.4.7.3 Referenced to Expanded Format
Jika panjang data yang mengikuti tag '8B' = '03', definisi di bawah berlaku.
Jika panjang data yang mengikuti tag '8B' adalah '02' + X x '02', definisi di bawah berlaku.
11.1.1.4.8 Short File Identifier
Jika tidak ada TLV, maka nilai SFI adalah 5 LSB bit (bit b5 sampai b1) dari file identifier.
Jika ada TLV tetapi kosong (panjangnya 0), maka SFI ini tidak disupport untuk file yang terpilih.
Jika panjang TLV adalah 1, maka nilai SFI adalah 5 MSB bit (b8 sampai b4) dari nilai TLV. Dalam kasus ini, bit b3 sampai b1 diset ke 0.
11.1.1.4.9 Life Cycle Status Integer
11.1.1.4.10 PIN Status Template DO
Object TLV ini berisi informasi PIN status untuk DF/ADF dan dimana PIN digunakan untuk mengakses DF/ADF dan file-file dibawahnya. PIN ditunjukkan pada object data ini menggunakan key reference tag '83' seperti didefinisikan pada ISO/IEC 7816-4. Isi dari constructed PIN status pada TLV Data Object dengan tag 'C6' bergantung pada panjangnya.
Penggunaan qualifier DO menunjukkan jika key reference data object (PIN) yang mengikutinya digunakan untuk verifikasi atau tidak. Jika terdapat object data, maka dia harus didahului oleh key reference data object yang berhubungan dengannya.
Untuk format PS_DO lihat sub bab 9.5.2. Untuk setiap bit yang diset ke '1' pada PS byte, key yang bersesuaian pada PS template, DO dienabled. Jumlah key reference dengan tag '83' menunjukkan berapa banyak PIN yang berbeda yang digunakan untuk mengakses DF yang terpilih dan anak2nya.
11.1.2 STATUS
11.1.2.1 Functional Description
Fungsi ini mengembalikan informasi yang berhubungan dengan current directory atau current application. Selain itu, sesuai dengan spesifikasi pada aplikasi, dia dapat digunakan untuk menunjukkan aplikasi pada UICC bahwa prosedur sesi aktivasinya telah berhasil dieksekusi atau prosedur terminasinya telah berhasil dieksekusi.
Catatan. Indikasi tersebut dapat digunakan untuk melakukan sinkroniasi aplikasi pada terminal dan UICC.
Input : * tidak ada
Output :
* Salah satu dari :
- FCP dari direktory saat ini
- Nama DF pada TLV data object dari aplikasi yang terpilih saat ini
- Tidak ada dapat yang dikembalikan
11.1.2.2 Command Parameters
Label:
102 221 v8,
ETSI,
protocol,
smartcard,
SWP,
terjemahan
Subscribe to:
Posts (Atom)