Android

    System 권한이 필요한 Applicatiion 개발 환경

    아래에서 언급하긴 했지만, Platform key signing 이 필요한 application 의 개발 환경에 대해서 정리해 보았다. Eclipse 에서 android sdk 의 emulator 의 system process 는 android 가 제공한 platform key 로 signing 해서 설치하면 된다. 따라서, system 권한이 필요한 appilcation 을 emulator 에 설치해서 debugging 하고 싶다면, known key 인 platform key 로 signing 하면 된다. 아래는 구체적인 방법이다. \build\target\product\security\ 에서 platform.pk8, platform.x509.pem 파일을 가져온다. 하기 와 같이 순서데로 진행하면,..

    Platform key signing 분석

    Platform key signing 을 하는 이유는 뭘까? 왜 굳이 Platform key 로 signing 을 해야 할까? 일반적인 apk 의 경우, (일반 개발자, 3rd party 가 개발한 APK) 자신이 만든 apk 를, data 영역에 install 할 수 있으며, 또는 rooting 한 폰의 system 영역에 설치할 수 있고, 이를 실행할 수 있다. 여기서 일반적인 apk 란, 통상적을 제공되는 sdk 에서 개발 된 apk 를 말한다.(Vendor가 아닌, 일반적인 모든 개발자가 Eclipse 등 SDK를 사용하여 개발한 Application) Full image build 과정에서 생성되는 System image(Framework.jar)를 사용하면, 소위말하는 Internal or H..

    안드로이드 앱 설치 삭제시 알아내는 법

    안드로이드에서 애플리케이션 패키지 추가 삭제시 알아내는 소스코드를 봤다. ^^ 그런데 문제는 삭제하고나서 안다는게 문제네...ㅎ 삭제될때 여러개 삭제되게 하고 싶은데 말이다.ㅎ 아무튼 아래 글 덕분에 방법을 미리 알아두었다. 출처 : http://samse.tistory.com/entry/Howto-recognizing-Add-Remove-package Package의 Add와 Remove시를 알고 싶다면 아래와 같이 한다. 1. Manifest에 receiver등록 2. Receiver class구현 public class IntentReceiver extends BroadcastReceiver { @Overridepublic void onReceive(Context context, Intent int..

    android javah 이용한 jni 헤더파일 만들기

    javah -classpath ./classes/ -jni com.pos.util.GeoTrans 1) cd "android project/bin/" 위치로 이동2) javah -classpath ./classes/ -jni com.pos.util.GeoTrans com.pos.util.GeoTrans

    안드로이드 파일 입출력드

    애플리케이션을 제작하다 보면 파일을 입/출력 기능을 구현해야 하는 경우가 있습니다. 파일 입/출력을 수행하려면 파일의 경로를 꼭 알아야 하는데, 안드로이드에서 파일을 저장할 수 있는 경로는 다양합니다. 가장 크게 애플리케이션 데이터가 저장되는 영역(일반적으로 '내부 저장소(Internal Storage)'라 불림)와 사진, 비디오, 데이터 등을 저장하는 영역(일반적으로 '외부 저장소(External Storage)(주1)'라 불림)으로 나뉠 수 있으며, 각 영역별로 다시 캐시 데이터가 저장되는 영역, 데이터베이스가 저장되는 영역 등으로 나뉩니다.(주1) 외부 저장소는 사용자 데이터(사진, 동영상, 등)이 저장되는 영역입니다. 일반적으로 이는 단말기의 외장 SD카드를 지칭하지만, 단말기에 따라서는 이 영역..

    특정 App 실행여부 확인

    프로세서 중에서 FOREGROUND로 실행되는 프로세서 이름을 읽어서 package이름과 같은 것을 찾아서 처리 String strPackage = ""; ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); List proceses = am.getRunningAppProcesses(); //프로세서 전체를 반복 for(RunningAppProcessInfo process : proceses) { if(process.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND) { strPackage = process.processName; //package이름과 동일..