본문 바로가기
[android 보안] 패키지 관리 #1 [android 보안] 패키지 관리 #1 출처 : Android Security Internals 3장개요 목차 3. 패키지 관리 3.1. 안드로이드 앱 패키지 구성 3.2. 코드 서명 3.2.1. 자바 코드 서명 3.2.2. 안드로이드 코드 서명 3.3. APK 설치 과정 3.3.1. 앱 패키지와 데이터의 위치 3.3.2. 활성화된 컴포넌트 3.3.3. 지역 패키지의 설치 3.3.4. 패키지 업데이트 3.3.5. 암호화된 APK 의 설치 3.3.6. 포워드 락 3.3.7. 암호화된 앱과 구글 플레이 3.4. 패키지 검증 3.4.1. 패키지 검증을 위한 안드로이드 지원 기능 3.4.2. 구글 플레이 구현 3.5. 요약 3.1. 안드로이드 앱 패키지 구성 -APK 는 자바 JAR 를 확장한 포맷이며, JA.. 2018. 4. 18.
[android 보안] 안드로이드 보안 모델 #2 [android 보안] 안드로이드 보안 모델 #2 1.2. 안드로이드 보안 모델 -시스템의 나머지 부분과 마찬가지로 안드로이드의 보안 모델은 리눅스 커널이 제공하는 보안기능을 활용한다.다중 사용자 시스템인 리눅스는 프로세스들을 서로 격리시키듯이 사용자 리소스들도 서로 격리시킬 수 있다. -전통적인 리눅스에서는 시스템에 로그인해서 셸을 통해 명령을 실행하는 실제 사용자나 백그라운드에서 실행되는 시스템 서비스에 전용 UID 를 부여했다.그러나 안드로이드는 스마트폰을 위해 만들어졌고, 또 모바일폰은 개인용 기기이기 때문에 시스템에 여러 사용자를 등록할 필요가 없다.사용자는 스마트폰의 소유자를 한 명으로 간주하고, 대신 UID 는 앱을 구분하는 용도로 사용한다. ** 1.2.1. 앱 샌드박스 -안드로이드는 앱을.. 2018. 4. 15.
[android 보안] 안드로이드 보안 모델 #1 [android 보안] 안드로이드 보안 모델 출처 : Android Security Internals 1장개요 목차 1. 안드로이드 보안 모델 1.1. 안드로이드의 아키텍처 1.1.1. 리눅스 커널 1.1.2. 네이티브 사용자 공간 1.1.3. 달빅 가상 머신 1.1.4. 자바 런타임 라이브러리 1.1.5. 시스템 서비스 1.1.6. 프로세스 간 통신 1.1.7. 바인더 1.1.8. 안드로이드 프레임워크 라이브러리 1.1.9. 앱 1.2. 안드로이드 보안 모델 1.2.1. 앱 샌드박스 1.2.2. 권한 1.2.3. IPC 1.2.4. 코드 서명과 플랫폼 키 1.2.5. 다중 사용자 지원 1.2.6. SELinux 1.2.7. 시스템 업데이트 1.2.8. 검증된 부트 1.3. 요약 1.1. 안드로이드의 아.. 2018. 4. 14.
[android] odex 에 대해 알아보자. [android] odex 에 대해 알아보자. -Android 앱은 ZIP 형태로 압축된 apk 에 담겨져 있다.이 apk 파일을 압축해제해보면 classes.dex 라는 파일이 있는데, 이 파일에 code 가 들어 있다.이 파일이 Dalvik JVM 에 의해 parse 가 되고, Dalvik cache 에 저장이 된다. ( /data/dalvik-cache/ 폴더에 저장 )parse & cache save 과정 때문에 최초 실행은 조금 오래 걸릴 수 있는 것이다. -odex 는 classes.dex 의 pre-processed 된 버전이라고 볼 수 있다.즉 Dalvik 이 바로 실행될 수 있는 형태의 dex 라고 보면 된다.앱이 odex 화되면, apk 압축파일에서 classes.dex 는 제거되고, .. 2018. 1. 24.
[android] xml 의  tool 을 사용하자 [android] xml 의 tool 을 사용하자 https://medium.com/sebs-top-tips/tools-of-the-trade-part-1-f3c1c73de898https://developer.android.com/studio/write/tool-attributes.html -xmlns:tools="http://schemas.android.com/tools" aapt 는 tools: attribute 를 ignore 한다.그래서 실제 apk 에는 들어가지 않는다. - 위와 같이 tools: 를 사용하면 실제 xml 에서 pre draw 할 때는 tools:text 가 android:text 처럼 작동하지만,apk 는 들어가지 않는다. aapt( android asset packaging .. 2017. 5. 30.
[android] 런타임에 다른 apk 소스 ( dex 파일 ) 읽어오기. 안드로이드, 런타임에 다른 apk 소스 ( dex 파일 ) 읽어오기. Dalvik VM 은 런타임에 다른 dex 파일을 로딩할 수 있다.dex 파일 로딩은 일반적으로 사용되는 방법은 아니다. 하지만, 다음과 같은 경우에 필요하다. 1. 64,000개 이상의 메서드를 포함한 앱의 경우 빌드에 문제가 발생할 수 있다. 이 경우 여러 개의 dex 파일로 나누어서 dex 를 동적으로 로딩해야 한다. 2. 런타임 중 동적으로 기능이 확장되는 프레임워크 형태의 앱은 커스텀 클래스 로딩 기능을 활용할 수 있다. 여러개의 dex 로 나누어 빌드 하는 경우는 이클립스 ADT 상에서 빌드될 수 없고, Ant 빌드 스크립트를 활용하여 빌드해야 한다. DexClassLoader dcl = new DexClassLoader( .. 2013. 12. 16.
[android] PackageManager 와 ActivityManager. 그리고 Intent 이야기 안드로이드, PackageManager 와 ActivityManager. 그리고 Intent 이야기 PackageManager 이야기. PackageManager 는 폰이 최초 실행될 때 system/app, data/app 등의 위치를 검색하며 APK 파일들의 매니페스트 파일을 조사해 intent 에 관련된 내용들을 모두 system 에 등록시켜 놓는다. 새롭게 패키지가 추가되거나 삭제될 때 발생하는 broadcast intent 를 수신하여 등록된 정보를 갱신하는 일도 수행한다. ActivityManager 이야기 ActivityManager 는 인텐트를 수신받으면 PackageManagerService 를 통해 Intent 에 부합하는 컴퍼넌트 정보를 다져온다. 그 다음 해당 컴퍼넌트의 상태 정보와.. 2013. 11. 8.
[android] Manifest 의 VersionCode 정보 코드로 가져오기 Manifest의 VersionCode 정보 코드로 가져오기 Manifest의 VersionCode 는 App 을 Release 할 때 Version 명시용으로도 사용되고,Google Play 에 APK Release 를 할 때 비교 코드로도 사용된다. 간혹 자체 서버를 운영하며, 그 서버와 통신하는 형태의 앱이라면서버의 API 변경 등에 따라 App 의 Update 를 권하기 위해서도 Version Code 비교는 사용될 수 있다. Manifest 에 명시된 VersionCode 를 가져오는 방법은 다음과 같다. try{return getPackageManager().getPackageInfo( PACKAGE_NAME, PackageManager.GET_META_DATA ).versionCode;}ca.. 2013. 6. 14.
반응형