<?xml version='1.0' encoding='EUC-KR' ?>
<rss version="2.0"
			xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
			xmlns:dc="http://purl.org/dc/elements/1.1/"
			xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" >
	<channel>
		<title><![CDATA[»ç¶û³ª¹«]]></title>
		<link>http://www.sarangnamu.net</link>
		<image></image>
		<description><![CDATA[»ç¶û³ª¹«¶ø´Ï´Ù..]]></description>
		<language>ko</language>
		<copyright>email : aucd29@gmail; MSN : cherubim_kor@hotmail.com; NateOn : aucd29@nate.com</copyright>
		<pubDate>2010-09-07 14:17:50</pubDate>
		<item>
		<category><![CDATA[[]]]></category>
		<title><![CDATA[[stlport on android]]]></title>
		<link>http://www.sarangnamu.net/basic/basic_view.php?no=4344</link>
		<description><![CDATA[[¿©±âÀú±â stlport °¡ ÀÌÀü¿¡ wrapper ±âÁØÀ¸·Î µÇ¾î ÀÖ¾î¼­... ±×°Ç »ç¿ëÇÏ±ä ½È°í ÇØ¼­ ÀÏ´ÜÀº android 2.2 ºÎÅÍ Æ÷ÇÔµÇ¾î ÀÖ´Â stlport¸¦ ÀÌ¿ëÇÏ±â·Î »ý°¢ÇÏ°í ÀÌ ³»¿ëÀ» ÀÛ¼ºÇÑ´Ù. ÇØ´ç ³»¿ëÀº ndk r4b ±âÁØÀ¸·Î ÀÛ¼ºµÇ¾ú´Ù.<br />
<br />
#1<br />
¸ÕÀú ndk¸¦ ´Ù¿î ¹Þ´Âµ¥ ±× °æ·Î´Â ´ÙÀ½°ú °°´Ù. <br />
<br />
[code]http://developer.android.com/sdk/ndk/index.html[/code]<br />
<br />
#2 <br />
±âº»ÀûÀÎ jniÀÇ ±¸¼ºÀº »ùÇÃÀÎ hello-jni ¸¦ »ç¿ëÇÏ¿´´Ù.. (ÀÌ°Ô ³ªÁß¿¡ Å« È­¸¦ ºÎ¸£±äÇß´Ù..)<br />
<br />
eclipse ¿¡¼­ Load ÇÏ´Â ¹æ¹ýÀº new project ¸¦ ÇÑ µÚ exist project¸¦ ¼±ÅÃÇØ¼­ À§Ä¡¸¦ ÁöÁ¤ÇÏ¸é ºÒ·¯ ¿Ã ¼ö ÀÖ´Ù.<br />
<br />
<br />
#3<br />
¸ÕÀú stlport ¸¦ ´Ù¿î ¹Þ¾Æ¾ß µÇ´Âµ¥ android kernel ³»¿¡ stlport °¡ Æ÷ÇÔµÇ¾î ÀÖ´Ùº¸´Ï ´ÙÀ½ÀÇ °æ·Î·Î ÀÏ´Ü ÀÌµ¿ÇÑ´Ù.<br />
<br />
[code]http://android.git.kernel.org/[/code]<br />
<br />
ÀÌ°÷¿¡ platform/external/stlport.gif °¡ Á¸ÀçÇÏ°í ÀÌ¸¦ ¼±ÅÃÇÏ°Ô µÇ¸é stlport¸¦ git ·Î ´Ù¿î·Îµå ÇÒ ¼ö ÀÖ´Âµ¥  ±× °æ·Î´Â ´ÙÀ½°ú °°´Ù.<br />
<br />
[code]git://android.git.kernel.org/platform/external/stlport.git[/code]<br />
<br />
ÀÌ ÆÄÀÏÀº ÀÓÀÇÀÇ À§Ä¡¿¡ ´Ù¿î ¹Þ¾Æµµ µÇÁö¸¸ °¡´ÉÇÏ¸é $(ndk_root)/sources ³»¿¡ ´Ù¿î ¹Þ´Â°Ô ÁÁ´Ù.<br />
<br />
´Ù¿îÀ» ¿Ï·áÇÏ¿´À¸¸é git·Î ´Ù¿î·Îµå ÇÑ µÚ stlport ³»¿¡ ¼Ò½º ÆÄÀÏÀ» ¾à°£ ¼öÁ¤ÇØÁÖ¸é µÈ´Ù.<br />
<br />
º¯°æÇÒ ÆÄÀÏÀÇ À§Ä¡´Â [b]$(stlport_root)/stlport/stl/config[/b] ³»¿¡ [b]_android.h[/b] ·Î ´ÙÀ½°ú °°ÀÌ º¯°æÇÏ¸é µÈ´Ù.<br />
<br />
[b]original[/b]<br />
[code]<br />
// Define how to include our native headers.<br />
#define _STLP_NATIVE_HEADER(header) <libstdc++/include/header><br />
#define _STLP_NATIVE_C_HEADER(header) <../include/header><br />
#define _STLP_NATIVE_CPP_C_HEADER(header) <libstdc++/include/header><br />
#define _STLP_NATIVE_CPP_RUNTIME_HEADER(header) <libstdc++/include/header><br />
#define _STLP_NATIVE_OLD_STREAMS_HEADER(header) <libstdc++/include/header><br />
#define _STLP_NATIVE_CPP_RUNTIME_HEADER(header) <libstdc++/include/header><br />
[/code]<br />
<br />
[b]changed[/b]<br />
[code]<br />
// Define how to include our native headers.<br />
#define _STLP_NATIVE_HEADER(header) <header><br />
#define _STLP_NATIVE_C_HEADER(header) <../include/header><br />
#define _STLP_NATIVE_CPP_C_HEADER(header) <header><br />
#define _STLP_NATIVE_CPP_RUNTIME_HEADER(header) <header><br />
#define _STLP_NATIVE_OLD_STREAMS_HEADER(header) <header><br />
#define _STLP_NATIVE_CPP_RUNTIME_HEADER(header) <header><br />
[/code]<br />
<br />
ÀÌÈÄ ºôµå¸¦ ÇÏ¸é µÇ´Âµ¥... abs °¡ conflict °¡ ³ª´Â ¹®Á¦°¡ ¹ß»ýÇÏ¿´´Ù.... ÇØ°á ¹æ¹ýÀº.. 2Æ²µ¿¾È »ðÁúÇÑ°Å¿¡ ºñ±³ÇØ¼­ ¸Å¿ì °£´ÜÇÏ¿´À¸´Ï... <br />
<br />
[b].c -> .cpp[/b] <br />
<br />
·Î ÆÄÀÏ È®ÀåÀÚ¸¦ º¯°æÇØÁÖ¸é µÈ´Ù.. <br />
<br />
¿å³ª¿Â´Ù.. ¤Ð.¤Ð<br />
<br />
<br />
<br />
<br />
[b]jni -> Android.mk[/b]<br />
[code]<br />
LOCAL_PATH := $(call my-dir)<br />
<br />
include $(CLEAR_VARS)<br />
<br />
LOCAL_MODULE    := hello-jni<br />
LOCAL_SRC_FILES := hello-jni.[b]cpp[/b]<br />
[b]LOCAL_C_INCLUDES := $(NDK_ROOT)/sources/stlport/stlport[/b]<br />
LOCAL_SHARED_LIBRARIES += [b]libstlport[/b]<br />
<br />
include $(BUILD_SHARED_LIBRARY)<br />
<br />
# CHILD PROJECT<br />
[b]include $(NDK_ROOT)/sources/stlport/Android.mk[/b]<br />
[/code]<br />
<br />
<br />
ps. NDK_ROOT ´Â .bashrc ¿¡¼­ ¹Ì¸® ¼³Á¤ÇØµÎ¾ú´Ù.]]]></description>
		<pubDate>Array</pubDate>
		</item>

		<item>
		<category><![CDATA[[]]]></category>
		<title><![CDATA[[error ==> Your project contains error(s), please fix them before running your application]]]></title>
		<link>http://www.sarangnamu.net/basic/basic_view.php?no=4343</link>
		<description><![CDATA[[menu => project => clean]]]></description>
		<pubDate>Array</pubDate>
		</item>

		<item>
		<category><![CDATA[[]]]></category>
		<title><![CDATA[[error => resource `xxx` is out sync with file system ]]]></title>
		<link>http://www.sarangnamu.net/basic/basic_view.php?no=4342</link>
		<description><![CDATA[[Project explorer => F5 (press)]]]></description>
		<pubDate>Array</pubDate>
		</item>

		<item>
		<category><![CDATA[[]]]></category>
		<title><![CDATA[[cd/dvd ·¹ÄÚµù ÇÁ·Î±×·¥]]]></title>
		<link>http://www.sarangnamu.net/basic/basic_view.php?no=4341</link>
		<description><![CDATA[[http://sourceforge.net/projects/infrarecorder/files/]]]></description>
		<pubDate>Array</pubDate>
		</item>

		<item>
		<category><![CDATA[[]]]></category>
		<title><![CDATA[[japan]]]></title>
		<link>http://www.sarangnamu.net/basic/basic_view.php?no=4340</link>
		<description><![CDATA[[¿À´ÙÀÌ¹Ù, ½ÃºÎ¾ß, ½ÅÁêÄí, ÇÏ¶óÁêÄí, Å°Ä¡ÁÒ¿ìÁö, ¾Æ»çÄí»ç½Å»ç Á¤µµ´Â ±¸°æÇÏ¼Å¾ß ÇÒ°Ì´Ï´Ù<br />
±³ÅëÆíÀ» ¹è·Î °¡½Å´Ù¸é 2¹Ú3ÀÏÀÌ ¾Æ´Ï¶ó 4¹Ú 5ÀÏ, 5¹Ú 6ÀÏµµ °¡´ÉÇÏ½ÇÁöµµ ..<br />
<br />
<br />
604¹ø ¼®¼ö¿ª -> ÀÎÃµ<br />
<br />
19½Ã 25/55<br />
19½Ã 20/45<br />
20½Ã 15]]]></description>
		<pubDate>Array</pubDate>
		</item>

		<item>
		<category><![CDATA[[]]]></category>
		<title><![CDATA[[ndk utf-8]]]></title>
		<link>http://www.sarangnamu.net/basic/basic_view.php?no=4339</link>
		<description><![CDATA[[link : http://itouchdb.tistory.com/99<br />
<br />
¶ÇÇÑ ¾Èµå·ÎÀÌµå¿¡¼­ C¼Ò½º¸¦ JNI·Î º¯°æÇÒ ¶§ ¾Æ·¡¿Í °°ÀÌ charÇüÀ¸·Î º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù.<br />
<br />
//jstringÇüÀ» charÇüÀ¸·Î º¯È¯<br />
contentPath = (*env)->GetStringUTFChars(env, jFilePath, 0); // jstringÀ» charÇüÀ¸·Î º¯°æ<br />
pli_strcpy(contentName, contentPath);<br />
(*env)->ReleaseStringUTFChars(env, jFilePath, contentPath); // ¸Þ¸ð¸® ÇØÁ¦<br />
]]]></description>
		<pubDate>Array</pubDate>
		</item>

		<item>
		<category><![CDATA[[]]]></category>
		<title><![CDATA[[timer in android]]]></title>
		<link>http://www.sarangnamu.net/basic/basic_view.php?no=4338</link>
		<description><![CDATA[[http://steve.odyfamily.com/?p=12<br />
<br />
public class myActivity extends Activity {<br />
<br />
	private Timer myTimer;<br />
<br />
	/** Called when the activity is first created. */<br />
	@Override<br />
	public void onCreate(Bundle icicle) {<br />
		super.onCreate(icicle);<br />
		setContentView(R.layout.main);<br />
<br />
		myTimer = new Timer();<br />
		myTimer.schedule(new TimerTask() {<br />
			@Override<br />
			public void run() {<br />
				TimerMethod();<br />
			}<br />
<br />
		}, 0, 1000);<br />
	}<br />
<br />
	private void TimerMethod()<br />
	{<br />
		//This method is called directly by the timer<br />
		//and runs in the same thread as the timer.<br />
<br />
		//We call the method that will work with the UI<br />
		//through the runOnUiThread method.<br />
		this.runOnUiThread(Timer_Tick);<br />
	}<br />
<br />
	private Runnable Timer_Tick = new Runnable() {<br />
		public void run() {<br />
<br />
		//This method runs in the same thread as the UI.    	       <br />
<br />
		//Do something to the UI thread here<br />
<br />
		}<br />
	};<br />
}]]]></description>
		<pubDate>Array</pubDate>
		</item>

		<item>
		<category><![CDATA[[]]]></category>
		<title><![CDATA[[poring of curl to android using NDK]]]></title>
		<link>http://www.sarangnamu.net/basic/basic_view.php?no=4336</link>
		<description><![CDATA[[http://thesoftwarerogue.blogspot.com/2010/05/porting-of-libcurl-to-android-os-using.html]]]></description>
		<pubDate>Array</pubDate>
		</item>

		<item>
		<category><![CDATA[[]]]></category>
		<title><![CDATA[[stlport for ndk 1.6]]]></title>
		<link>http://www.sarangnamu.net/basic/basic_view.php?no=4332</link>
		<description><![CDATA[[http://github.com/vicamo/stlport-android<br />
<br />
[code]git://github.com/vicamo/stlport-android.git[/code]<br />
<br />
ÀÚ ¿ÜºÎ ¶óÀÌºê·¯¸®¸¦ ¾î¶»°Ô ÄÄÆÄÀÏ ÇÒ °ÍÀÎ°¡ ÇÏ´Â ÀÇ¹®ÀÌ »ý±æ ÅÍÀÎµ¥ °£´ÜÇÏ´Ù... NDK ¿¡´Â ÀÌ¿¡ ´ëÇÑ ¿¹Á¦°¡ Á¸ÀçÇÏ´Âµ¥ ±×°ÍÀÌ ¹Ù·Î cpufeatures ÀÌ´Ù.<br />
<br />
$ndk_root/sources/ ³»¿¡ Á¸ÀçÇÏ´Â cpufeatures °¡ ¸Ó¿¡ ¾²´ÂÁö Ã³À½¿£ ¾Æ¸®±î¸® ÇÏ¿´À¸³ª ÀÌ°ÍÀÌ native library ºôµå¿¡ ¿¹Á¦¶ó´Â°ÍÀ» docs ¿¡ ¹®¼­¸¦ º¸¸é ¾Ë ¼ö°¡ ÀÖ´Ù. <br />
<br />
docs ¿¡ CPU-FEATURES.TXT ÆÄÀÏÀ» ¿­¸é ¿ä·¡ ÀûÇôÀÖ´Ù.<br />
<br />
<br />
This NDK provides a small library named "cpufeatures" that can be used at<br />
runtime to detect the target device's CPU family and the optional features<br />
it supports.<br />
<br />
±×¸®°í »ç¿ë¹æ¹ý¿¡ ´ëÇØ¼­´Â <br />
<br />
<br />
Usage:<br />
------<br />
<br />
The library is available from sources/cpufeatures. It provides an Android.mk<br />
build script that can be used to build it as a static library.<br />
<br />
To use it, you must:<br />
<br />
  * include '$(NDK_ROOT)/sources/cpufeatures/Android.mk' at the start or end of your<br />
    Android.mk file.<br />
<br />
  * add '$(NDK_ROOT)/sources/cpufeatures' to your LOCAL_C_INCLUDES definition.<br />
<br />
  * add 'cpufeatures' to your LOCAL_STATIC_LIBRARIES definition when building<br />
    your final shared library.<br />
<br />
  your source code can then #include <cpu-features.h> to compile against it.<br />
<br />
Here is a simple example:<br />
<br />
<project-path>/jni/Android.mk:<br />
    LOCAL_PATH := $(call my-dir)<br />
<br />
    include $(CLEAR_VARS)<br />
    LOCAL_MODULE := <your-module-name><br />
    LOCAL_C_INCLUDES += $(NDK_ROOT)/sources/cpufeatures<br />
    LOCAL_SRC_FILES := <your-source-files><br />
    LOCAL_STATIC_LIBRARIES += cpufeatures<br />
    include $(BUILD_SHARED_LIBRARY)<br />
<br />
    include $(NDK_ROOT)/sources/cpufeatures/Android.mk<br />
<br />
<br />
¿ä·¡ ÀûÇôÀÖ´Ù...<br />
<br />
<br />
Áï »ç¿ëÇØ¾ßÇÒ ÇÁ·ÎÁ§Æ®ÀÇ jni Æú´õ¿¡ Android.mk ¿¡ <br />
<br />
<br />
    LOCAL_PATH := $(call my-dir)<br />
<br />
    include $(CLEAR_VARS)<br />
    LOCAL_MODULE := <your-module-name><br />
    [b]LOCAL_C_INCLUDES += $(NDK_ROOT)/sources/cpufeatures[/b]<br />
    LOCAL_SRC_FILES := <your-source-files><br />
    [b]LOCAL_STATIC_LIBRARIES += cpufeatures[/b]<br />
    include $(BUILD_SHARED_LIBRARY)<br />
<br />
    [b]include $(NDK_ROOT)/sources/cpufeatures/Android.mk[/b]<br />
<br />
±½°Ô Ç¥½ÃµÈ ´ÙÀ½ÀÇ ³»¿ëÀ» Ãß°¡ÇÏ¶ó´Â ÀÌ¾ß±â ÀÌ´Ù. (Âü°í·Î ÀÌ½ÃÅ°µé ¿¹Á¦¿¡ ¿ÀÅ¸¸¦ ³»³ù´Ù... )<br />
<br />
¾î¶²°¡ ½±Áö ¾ÊÀº°¡?<br />
<br />
°¨ ÀâÈ÷Áö ¾ÊÀº°¡??<br />
<br />
git ·Î ¹ÞÀº stlport ¿£ android.mk °¡ Á¸ÀçÇÑ´Ù. ÈÄÈÊ...<br />
<br />
³ëÆÄ½É¿¡ ±ÛÀ» ÀûÀÚ¸éÀº $(NDK_ROOT) Àº.. <br />
<br />
vi ~/.bashrc ÇÑ µÚ¿¡ Á¦ÀÏ ¹Ø¿¡ ´ÙÀ½°ú °°ÀÌ android ndk ¸¦ ¹ÞÀº °÷À» ÁöÁ¤ÇÏ¸é µÈ´Ù.<br />
export NDK_ROOT=~/´ç½ÅÀÌNDK¸¦ ¹ÞÀº °÷ <br />
<br />
¿¹)<br />
export NDK_ROOT=~/android/android-ndk-r4b<br />
<br />
<br />
//////////////  ¾Æ·¡¿¡ ¼Ò½º·Î ÇÏ¿´À» °æ¿ì n4b ¿¡¼­ Àß µÊ<br />
<br />
<br />
http://www.anddev.org/viewtopic.php?p=29939<br />
<br />
<br />
STLport for NDK 1.6<br />
by pelya ¡í Mon Nov 23, 2009 11:56 am<br />
<br />
This is STLport implementation of C++ Standard Template Library, ported to Android 1.6 NDK. <br />
Might help you to port your C++ app to Android. <br />
<br />
<br />
I'm also porting SDL library, using San-Angeles demo for a basis, not by using /dev/graphics/fb0 as was described in other topics about SDL (which requires root access to run and leaves your phone unusable after exit, unsuitable for Android market hehe).<br />
<br />
<br />
and ]]]></description>
		<pubDate>Array</pubDate>
		</item>

		<item>
		<category><![CDATA[[]]]></category>
		<title><![CDATA[[android 1.5 library]]]></title>
		<link>http://www.sarangnamu.net/basic/basic_view.php?no=4330</link>
		<description><![CDATA[[libdl.so<br />
libc_debug.so<br />
libthread_db.so<br />
libc.so<br />
libm.so<br />
libstdc++.so<br />
libz.so<br />
libexpat.so<br />
liblog.so<br />
libicudata.so<br />
libWnnEngDic.so<br />
libWnnJpnDic.so<br />
libwnndict.so<br />
libcrypto.so<br />
browsertestplugin.so<br />
libctest.so<br />
libpagemap.so<br />
libvorbisidec.so<br />
libaes.so<br />
libicuuc.so<br />
libcutils.so<br />
libssl.so<br />
libutils.so<br />
libwpa_client.so<br />
libhardware.so<br />
libnetutils.so<br />
hw<br />
libicui18n.so<br />
libhardware_legacy.so<br />
libemoji.so<br />
libcorecg.so<br />
libsonivox.so<br />
libdrm1.so<br />
libjni_pinyinime.so<br />
libwbxml.so<br />
libsqlite.so<br />
libril.so<br />
libdrm1_jni.so<br />
libwbxml_jni.so<br />
libxml2wbxml.so<br />
libnativehelper.so<br />
libpixelflinger.so<br />
libreference-ril.so<br />
libsgl.so<br />
libexif.so<br />
libagl.so<br />
libui.so<br />
libEGL.so<br />
libGLESv1_CM.so<br />
libmedia.so<br />
libdvm.so<br />
libskiagl.so<br />
libcameraservice.so<br />
libaudioflinger.so<br />
libsrec_jni.so<br />
libsurfaceflinger.so<br />
libandroid_runtime.so<br />
libjni_latinime.so<br />
libsoundpool.so<br />
libFFTEm.so<br />
libopencorecommon.so<br />
libopencoreplayer.so<br />
libopencoredownloadreg.so<br />
libopencoremp4reg.so<br />
libopencorertspreg.so<br />
libpvasfreg.so<br />
libopencoremp4.so<br />
libopencorenet_support.so<br />
libopencoredownload.so<br />
libopencoreauthor.so<br />
libpvasf.so<br />
libmediaplayerservice.so<br />
libopencorertsp.so<br />
libsystem_server.so<br />
libmedia_jni.so<br />
libandroid_servers.so<br />
libwebcore.so<br />
#<br />
]]]></description>
		<pubDate>Array</pubDate>
		</item>

		<item>
		<category><![CDATA[[]]]></category>
		<title><![CDATA[[emulator bash setting]]]></title>
		<link>http://www.sarangnamu.net/basic/basic_view.php?no=4329</link>
		<description><![CDATA[[# android<br />
alias emul1_5='emulator -avd and_1_5 -partition-size 1024 &'<br />
alias emul2_2='emulator -avd and_2_2 -partition-size 1024 &'<br />
]]]></description>
		<pubDate>Array</pubDate>
		</item>

		<item>
		<category><![CDATA[[]]]></category>
		<title><![CDATA[[adding color to vim and cygwin]]]></title>
		<link>http://www.sarangnamu.net/basic/basic_view.php?no=4328</link>
		<description><![CDATA[[http://raibledesigns.com/rd/entry/adding_color_to_vim_and<br />
<br />
<br />
[b]in .vimrc[/b]<br />
[code]<br />
<br />
" Switch syntax highlighting on, when the terminal has colors<br />
" Also switch on highlighting the last used search pattern.<br />
if &t_Co > 2 || has("gui_running")<br />
  syntax on<br />
  set hlsearch<br />
endif<br />
<br />
[/code]<br />
<br />
<br />
[b]in .bashrc[/b]<br />
[code]<br />
alias ls="ls -CF --color"<br />
[/code]]]]></description>
		<pubDate>Array</pubDate>
		</item>

		<item>
		<category><![CDATA[[]]]></category>
		<title><![CDATA[[android ³»¿¡ apk °¡ ¼³Ä¡µÇ´Â Àå¼Ò]]]></title>
		<link>http://www.sarangnamu.net/basic/basic_view.php?no=4327</link>
		<description><![CDATA[[/data/data]]]></description>
		<pubDate>Array</pubDate>
		</item>

		<item>
		<category><![CDATA[[]]]></category>
		<title><![CDATA[[android 2.2 /system/lib ³»¿¡ library list]]]></title>
		<link>http://www.sarangnamu.net/basic/basic_view.php?no=4326</link>
		<description><![CDATA[[libstagefright_avc_common.so<br />
libopencore_downloadreg.so<br />
libwnndict.so<br />
libcutils.so<br />
libskiagl.so<br />
libstlport.so<br />
libthread_db.so<br />
libandroid_runtime.so<br />
libopencore_download.so<br />
libril.so<br />
libcrypto.so<br />
libopencore_author.so<br />
libctest.so<br />
libbinder.so<br />
libwebcore.so<br />
libopencore_player.so<br />
libETC1.so<br />
libmediaplayerservice.so<br />
libstagefright_amrnb_common.so<br />
libopencore_common.so<br />
libemoji.so<br />
libsoundpool.so<br />
libreference-cdma-sms.so<br />
libjni_pinyinime.so<br />
invoke_mock_media_player.so<br />
libopencore_mp4localreg.so<br />
libmedia.so<br />
libcameraservice.so<br />
libc_malloc_debug_leak.so<br />
libjni_latinime.so<br />
libhardware.so<br />
libnativehelper.so<br />
libomx_mp3dec_sharedlibrary.so<br />
libpixelflinger.so<br />
libvorbisidec.so<br />
libacc.so<br />
egl<br />
libomx_sharedlibrary.so<br />
libui.so<br />
libdvm.so<br />
libhardware_legacy.so<br />
libWnnEngDic.so<br />
hw<br />
liblog.so<br />
libwbxml_jni.so<br />
libstagefright_omx.so<br />
libcamera_client.so<br />
libstagefright_color_conversion.so<br />
libstagefright.so<br />
libsqlite.so<br />
libstdc++.so<br />
libdiskconfig.so<br />
libmedia_jni.so<br />
libskia.so<br />
libterm.so<br />
libnetutils.so<br />
libxml2wbxml.so<br />
libssl.so<br />
libFFTEm.so<br />
libomx_aacdec_sharedlibrary.so<br />
libsurfaceflinger.so<br />
libpagemap.so<br />
libopencore_mp4local.so<br />
libexpat.so<br />
libc_malloc_debug_qemu.so<br />
libsurfaceflinger_client.so<br />
libWnnJpnDic.so<br />
liblvmxipc.so<br />
libomx_avcdec_sharedlibrary.so<br />
libttspico.so<br />
libjpeg.so<br />
libicui18n.so<br />
libttssynthproxy.so<br />
libandroid_servers.so<br />
libsrec_jni.so<br />
libsonivox.so<br />
libomx_amrenc_sharedlibrary.so<br />
libaudioflinger.so<br />
libopencore_rtsp.so<br />
libexif.so<br />
libdrm1.so<br />
libjnigraphics.so<br />
libsysutils.so<br />
libSR_AudioIn.so<br />
libdl.so<br />
libm.so<br />
libz.so<br />
libreference-ril.so<br />
libsystem_server.so<br />
libicudata.so<br />
libopencore_net_support.so<br />
libGLESv2.so<br />
libomx_amrdec_sharedlibrary.so<br />
libdrm1_jni.so<br />
libGLESv1_CM.so<br />
libomx_m4vdec_sharedlibrary.so<br />
libEGL.so<br />
libutils.so<br />
libopencore_rtspreg.so<br />
libc.so<br />
libwpa_client.so<br />
libicuuc.so<br />
]]]></description>
		<pubDate>Array</pubDate>
		</item>

		<item>
		<category><![CDATA[[]]]></category>
		<title><![CDATA[[mount a file system read-write]]]></title>
		<link>http://www.sarangnamu.net/basic/basic_view.php?no=4325</link>
		<description><![CDATA[[http://android-tricks.blogspot.com/2009/01/mount-filesystem-read-write.html<br />
<br />
Very often when you want to write files to a particular partition on ADP1, you will get a "Permission Denied" if the partition is mounted read-only.<br />
To get around this, you need to mount the partition read-write. Typically this is done with /system partition<br />
<br />
[code]<br />
$ adb shell<br />
$ su<br />
$ mount -o rw,remount -t yaffs2 /dev/block/mtdblock3 /system<br />
[/code]<br />
<br />
(Replace /dev/block/mtdblock3 & /system with appropriate device path and mount point, as obtained from cat /proc/mounts)<br />
<br />
]]]></description>
		<pubDate>Array</pubDate>
		</item>

		<item>
		<category><![CDATA[[]]]></category>
		<title><![CDATA[[change emulator partition size]]]></title>
		<link>http://www.sarangnamu.net/basic/basic_view.php?no=4324</link>
		<description><![CDATA[[emulator -avd $(YourEmulatorName) -partition-size 128]]]></description>
		<pubDate>Array</pubDate>
		</item>

		<item>
		<category><![CDATA[[]]]></category>
		<title><![CDATA[[pkcs padding]]]></title>
		<link>http://www.sarangnamu.net/basic/basic_view.php?no=4321</link>
		<description><![CDATA[[pkcs ¸¦ Àû¿ëÇÏ±â À§ÇØ¼­´Â 2°¡Áö¸¦ ¾Ë¾Æ¾ß µÈ´Ù.<br />
<br />
1. buffer ÀüÃ¼ Å©±â<br />
2. plain text ÀÇ ±æÀÌ<br />
<br />
Áï<br />
<br />
padding = buffer size - plain text length<br />
<br />
¿©±â¼­ <br />
<br />
memset(bufferPtr + plainTextLen, padding, padding);<br />
<br />
À¸·Î Ã¤¿ì¸é µÇ´Â °ÍÀÌ´Ù.<br />
<br />
Ç®ÀÌÇÏ¸é buffer ³»¿ëÀÌ ÀÖ´Â ºÎºÐÀ» Á¦¿ÜÇÑ ºÎºÐÀ» padding °ªÀ¸·Î Ã¤¿ì´Â °Í.]]]></description>
		<pubDate>Array</pubDate>
		</item>

		<item>
		<category><![CDATA[[]]]></category>
		<title><![CDATA[[blowfish]]]></title>
		<link>http://www.sarangnamu.net/basic/basic_view.php?no=4319</link>
		<description><![CDATA[[http://stackoverflow.com/questions/993780/assistance-with-openssl-blowfish-simple-example-inserting-garbage-characters<br />
<br />
/*<br />
 * This code is a modificaiton of work cieted below.  It was modified by<br />
 * ojblass June 16, 2009.<br />
 * <br />
 * The original can be found at http://tldp.org/LDP/LG/issue87/vinayak.html<br />
 * <br />
 * TERMS OF THE Open Publication License (OPL)<br />
 * <br />
 * Copyright ¨Ï 2003, Vinayak Hegde. Copying license<br />
 * http://www.linuxgazette.com/copying.html Published in Issue 87 of Linux<br />
 * Gazette, February 2003<br />
 * <br />
 * 1. The modified version must be labeled as such. 2. The person making the<br />
 * modifications must be identified and the modifications dated. 3.<br />
 * Acknowledgement of the original author and publisher if applicable must be<br />
 * retained according to normal academic citation practices. 4. The location<br />
 * of the original unmodified document must be identified. 5. The original<br />
 * author's (or authors') name(s) may not be used to assert or imply<br />
 * endorsement of the resulting document without the original author's (or<br />
 * authors') permission.<br />
 */<br />
<br />
#include <openssl/blowfish.h><br />
#include <openssl/evp.h><br />
#include <fcntl.h><br />
#include <stdio.h><br />
#include <sys/stat.h><br />
#include <sys/types.h><br />
#include <unistd.h><br />
#include <string.h><br />
#define IP_SIZE 1024<br />
#define OP_SIZE 1024 + EVP_MAX_BLOCK_LENGTH<br />
unsigned char   key[16];<br />
unsigned char   iv[8];<br />
<br />
int<br />
generate_key()<br />
{<br />
        int             i, fd;<br />
        if ((fd = open("/dev/random", O_RDONLY)) == -1)<br />
                perror("open error");<br />
<br />
        if ((read(fd, key, 16)) == -1)<br />
                perror("read key error");<br />
<br />
        if ((read(fd, iv, 8)) == -1)<br />
                perror("read iv error");<br />
<br />
        printf("128 bit key:\n");<br />
        for (i = 0; i < 16; i++)<br />
                printf("%4d ", key[i]);<br />
<br />
        printf("\nInitialization vector\n");<br />
        for (i = 0; i < 8; i++)<br />
                printf("%4d ", iv[i]);<br />
        printf("\n");<br />
<br />
<br />
        close(fd);<br />
        return 0;<br />
}<br />
<br />
int<br />
do_decrypt(int infd, int outfd)<br />
{<br />
        unsigned char           *inbuff, *outbuf;<br />
        int             olen=0, tlen=0, n=0;<br />
        EVP_CIPHER_CTX  ctx;<br />
        EVP_CIPHER_CTX_init(&ctx);<br />
        EVP_DecryptInit(&ctx, EVP_bf_cbc(), key, iv);<br />
<br />
        outbuf = (unsigned char *) malloc(sizeof(unsigned char) * OP_SIZE);<br />
        inbuff = (unsigned char *) malloc(sizeof(unsigned char) * IP_SIZE);<br />
<br />
        /* keep reading until a break */<br />
        for (;;) {<br />
                memset(inbuff, 0, IP_SIZE);<br />
                if ((n = read(infd, inbuff, IP_SIZE)) == -1) {<br />
                        perror("read error");<br />
                        break;<br />
                } else if (n == 0)<br />
                        break;<br />
<br />
                memset(outbuf, 0, OP_SIZE);<br />
<br />
                if (EVP_DecryptUpdate(&ctx, outbuf, &olen, inbuff, n) != 1) {<br />
                        printf("error in decrypt update\n");<br />
                        return 0;<br />
                }<br />
                if ((n = write(outfd, outbuf, olen)) == -1)<br />
                        perror("write error");<br />
        }<br />
<br />
        tlen=0;<br />
        if (EVP_DecryptFinal(&ctx, outbuf + olen, &tlen) != 1) {<br />
                perror("error in decrypt final");<br />
                return 0;<br />
        }<br />
<br />
        if ((n = write(outfd, outbuf+olen, tlen)) == -1)<br />
                perror("write error");<br />
<br />
        EVP_CIPHER_CTX_cleanup(&ctx);<br />
        return 1;<br />
}<br />
<br />
int<br />
do_encrypt(int infd, int outfd)<br />
{<br />
        unsigned char           *inbuff, *outbuf;<br />
<br />
        int             olen=0, tlen=0, n=0;<br />
        EVP_CIPHER_CTX  ctx;<br />
        EVP_CIPHER_CTX_init(&ctx);<br />
        EVP_EncryptInit(&ctx, EVP_bf_cbc(), key, iv);<br />
<br />
        outbuf = (unsigned char *) malloc(sizeof(unsigned char) * OP_SIZE);<br />
        inbuff = (unsigned char *) malloc(sizeof(unsigned char) * IP_SIZE);<br />
<br />
        for (;;) {<br />
                memset(inbuff, 0, IP_SIZE);<br />
<br />
                if ((n = read(infd, inbuff, IP_SIZE)) == -1) {<br />
                        perror("read error");<br />
                        break;<br />
                } else if (n == 0)<br />
                        break;<br />
<br />
                if (EVP_EncryptUpdate(&ctx, outbuf, &olen, inbuff, n) != 1) {<br />
                        printf("error in encrypt update\n");<br />
                        return 0;<br />
                }<br />
<br />
                if ((n = write(outfd, outbuf, olen)) == -1)<br />
                        perror("write error");<br />
        }<br />
        tlen=0;<br />
        if (EVP_EncryptFinal(&ctx, outbuf + olen, &tlen) != 1) {<br />
                printf("error in encrypt final\n");<br />
                return 0;<br />
        }<br />
<br />
        if ((n = write(outfd, outbuf+olen, tlen)) == -1)<br />
                perror("write error");<br />
<br />
        EVP_CIPHER_CTX_cleanup(&ctx);<br />
        return 1;<br />
}<br />
<br />
int<br />
main(int argc, char *argv[])<br />
{<br />
        int             flags1 = 0, flags2 = 0, outfd, infd;<br />
        mode_t          mode;<br />
<br />
        memset(key, 0, 16);<br />
        memset(iv, 0, 8);<br />
        memset(&mode, 0, sizeof(mode));<br />
<br />
        flags1 = flags1 | O_RDONLY;<br />
        flags2 = flags2 | O_RDONLY;<br />
        flags2 = flags2 | O_WRONLY;<br />
        flags2 = flags2 | O_CREAT;<br />
<br />
        mode = mode | S_IRUSR;<br />
        mode = mode | S_IWUSR;<br />
<br />
<br />
        generate_key();<br />
<br />
<br />
        if ((infd = open(argv[1], flags1, mode)) == -1)<br />
                perror("open input file error");<br />
<br />
        if ((outfd = open(argv[2], flags2, mode)) == -1)<br />
                perror("open output file error");<br />
<br />
        do_encrypt(infd, outfd);<br />
<br />
        close(infd);<br />
        fsync(outfd);<br />
        close(outfd);<br />
<br />
        if ((infd = open(argv[2], flags1, mode)) == -1)<br />
                perror("open output file error");<br />
<br />
        if ((outfd = open(argv[3], flags2, mode)) == -1)<br />
                perror("open output file error");<br />
<br />
        do_decrypt(infd, outfd);<br />
<br />
        close(infd);<br />
        fsync(infd);<br />
        close(outfd);<br />
<br />
        return 0;<br />
}]]]></description>
		<pubDate>Array</pubDate>
		</item>

		<item>
		<category><![CDATA[[]]]></category>
		<title><![CDATA[[Block cipher modes of operation]]]></title>
		<link>http://www.sarangnamu.net/basic/basic_view.php?no=4318</link>
		<description><![CDATA[[http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Electronic_codebook_.28ECB.29]]]></description>
		<pubDate>Array</pubDate>
		</item>

		<item>
		<category><![CDATA[[]]]></category>
		<title><![CDATA[[openssl padding]]]></title>
		<link>http://www.sarangnamu.net/basic/basic_view.php?no=4317</link>
		<description><![CDATA[[http://www.openssl.org/docs/crypto/EVP_EncryptInit.html<br />
<br />
int EVP_CIPHER_CTX_set_padding(EVP_CIPHER_CTX *x, int padding);<br />
int EVP_CIPHER_CTX_set_key_length(EVP_CIPHER_CTX *x, int keylen);<br />
<br />
<br />
EVP_CipherInit(&ctx, EVP_bf_ecb(), NULL, NULL, 0);<br />
EVP_CIPHER_CTX_set_key_length(&ctx, 16);<br />
<br />
EVP_CipherInit(&ctx, NULL, contentKey, NULL, 0);<br />
fin = fopen("C:\\My Project\\Practices\\Crypto\\Debug\\HelloWorld.sum", "rb");<br />
fout = fopen("C:\\My Project\\Practices\\Crypto\\Debug\\HelloWorld.pdf", "wb");<br />
<br />
for (;;) {<br />
	inlen = fread(inbuf, 1, 1024, fin);<br />
	if (inlen <= 0) break;<br />
	if (!EVP_CipherUpdate(&ctx, outbuf, &outlen, inbuf, inlen)) {<br />
		printf("error1");<br />
		exit(-1);<br />
	}<br />
	fwrite(outbuf, 1, outlen, fout);<br />
}<br />
<br />
if (!EVP_CipherFinal(&ctx, outbuf, &outlen)) {<br />
	printf("error2");<br />
	exit(-1);<br />
}<br />
fwrite(outbuf, 1, outlen, fout);<br />
<br />
<br />
<br />
<br />
<br />
<br />
http://linux.die.net/man/3/evp_cipher_ctx_set_padding<br />
<br />
Encrypt a string using blowfish:<br />
int do_crypt(char *outfile)<br />
       {<br />
       unsigned char outbuf[1024];<br />
       int outlen, tmplen;<br />
       /* Bogus key and IV: we'd normally set these from<br />
        * another source.<br />
        */<br />
       unsigned char key[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};<br />
       unsigned char iv[] = {1,2,3,4,5,6,7,8};<br />
       char intext[] = "Some Crypto Text";<br />
       EVP_CIPHER_CTX ctx;<br />
       FILE *out;<br />
       EVP_CIPHER_CTX_init(&ctx);<br />
       EVP_EncryptInit_ex(&ctx, EVP_bf_cbc(), NULL, key, iv);<br />
<br />
       if(!EVP_EncryptUpdate(&ctx, outbuf, &outlen, intext, strlen(intext)))<br />
               {<br />
               /* Error */<br />
               return 0;<br />
               }<br />
       /* Buffer passed to EVP_EncryptFinal() must be after data just<br />
        * encrypted to avoid overwriting it.<br />
        */<br />
       if(!EVP_EncryptFinal_ex(&ctx, outbuf + outlen, &tmplen))<br />
               {<br />
               /* Error */<br />
               return 0;<br />
               }<br />
       outlen += tmplen;<br />
       EVP_CIPHER_CTX_cleanup(&ctx);<br />
       /* Need binary mode for fopen because encrypted data is<br />
        * binary data. Also cannot use strlen() on it because<br />
        * it wont be null terminated and may contain embedded<br />
        * nulls.<br />
        */<br />
       out = fopen(outfile, "wb");<br />
       fwrite(outbuf, 1, outlen, out);<br />
       fclose(out);<br />
       return 1;<br />
       }]]]></description>
		<pubDate>Array</pubDate>
		</item>

	</channel>
</rss>

