본문 바로가기
[android] 화면 고정 기능 [android] 화면 고정 기능 -안드로이드 5.0 ( Lollipop ) 이상 버전에서 사용 가능한 기능이다. -화면 고정 기능은 특정 앱을 지목해서 Pin 을 할 수 있는데,이 Pin 이 된 앱을 가동중에는 Home 키나 Back 키, 앱 내 링크 등을 통해 해당 앱을 이탈할 수 없게 만든다. 이 기능은 게임을 하거나, 실수로 다른 앱으로 이동하지 않고 어떤 작업을 수행하고 싶은 경우 등에 사용하기 괜찮은 기능이다.덧붙여 지인이 어떤 특정한 기능을 사용하고 싶어 잠시 폰을 빌려달라고 했을 때, 해당 앱만 사용할 수 있도록 잠그는 역할도 할 수 있다. -설정 > 보안 > 화면 고정 > On/Off 를 통해 기능 활성화를 할 수 있고,화면고정(Pin) 을 하고 싶은 앱을 구동한 후 최근 실행(Histo.. 2018. 5. 5.
[android] Smart Lock 이란 ( Trust Agents ) [android] Smart Lock 이란 ( Trust Agents ) -안드로이드 5.0 ( Lolipop ) 에서부터 사용 가능한 기능. -설정 -> 보안 -> Trust Agent -> Smart Lock On. 을 통해 활성화 시킬 수 있다. -Smart Lock 이란 특정 상황에서 기기가 자동으로 잠금 해제되는 방식을 설정하여, 불필요하게 Lock 이 걸리는 일을 방지하는 “Smart” 한 Lock 인 것이다. -특정 상황은 주로 아래와 같다. 1. 신뢰할 수 있는 블루투스 기기를 연결했을 때2. 신뢰할 수 있는 장소에 있을 때 ( 일부 기기에서만 사용 가능 )3. 기기에서 내 얼굴을 인식할 때4. 기기를 휴대하고 있을 때 ( 신체 활동 감지, 일부 기기에서만 사용 가능 )5. 신뢰할 수 있는.. 2018. 5. 4.
[android] JobScheduler 호출 flow 분석 [android] JobScheduler 호출 flow 분석 JobScheduler(JobSchedulerImpl ) -JobScheduler 는 abstract class실제 안드로이드 구현체는 JobSchedulerImpl 이며, 이는 constructor 에 전달된 binder 를 통해 통신을 한다. -JobShcedulerImpl 에 전달되는 Binder 는 JobSchedulerService 의 inner class 로 있는 JobSchedulerStub 이다.Stub 에서는 JobSchedulerService 의 여러 함수로 역할을 위임(delegate) 시킨다. JobService-JobService 도 abstract class 로 startJob, stopJob 을 구현하는 Binder .. 2018. 4. 30.
[android] JobScheduler 의 schedule 이 fail 하는 케이스 [android] JobScheduler 의 schedule 이 fail 하는 케이스 Framework 소스 코드 기준은 LOS 5.0.0_r2 ~ MOS 6.0.1_r10 -schedule method 는 RESULT_FAILURE(0) 또는 RESULT_SUCCESS(1) 값 중 하나를 return 한다. -JobScheduler 은 abstract class 이고, 실제 구현 내용은 JobSchedulerImpl 에 있다.해당 코드를 보면 binder 를 통해 schedule 명령을 내리게 되고, 명시적으로 RemoteException 이 발생하면 fail 이 발생한다.@Override public int schedule(JobInfo job) { try { return mBinder.schedul.. 2018. 4. 29.
[android] JobStatus.getUID NullPointerException [android] JobStatus.getUID NullPointerException java.lang.RuntimeException: java.lang.NullPointerException: Attempt to invoke virtual method 'int com.android.server.job.controllers.JobStatus.getUid()' on a null object reference at android.app.job.JobService$JobHandler.handleMessage(JobService.java:139) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:.. 2018. 4. 28.
[android] Framework 혹은 3rd-party lib 이 뿜는 Exception 을 피해보자 ( ex) NullPointerException at acm.a ) Framework 혹은 3rd-party lib 이 뿜는 Exception 을 피해보자 ( ex) NullPointerException at acm.a ) 현재는 문제가 되지 않겠지만, 이전 버전의 adsense lib 을 사용하다 보면, 아래와 같은 crash report 가 올라오곤 했다. Caused by: java.lang.NullPointerException at acm.a(SourceFile:215) at acz.onTransact(SourceFile:58) at android.os.Binder.transact(Binder.java:279) at com.google.android.gms.internal.co$a$a.onCreate() at com.google.android.gms.ads.AdA.. 2018. 4. 22.
[android 보안] 사용자 관리 #2 [android 보안] 사용자 관리 #2 4.4. 사용자 메타데이터 -안드로이드는 사용자 데이터를 /data/system/users/ 디렉터리에 저장한다.이 디렉터리에는 사용자 디렉터리뿐만 아니라 사용자에 대한 메타데이터를 XML 형식으로 보관한다. * 4.4.1. 사용자 리스트 파일 -사용자는 할당된 사용자 ID 와 동일한 이름의 전용 “사용자 시스템 디렉터리” 와 사용자 ID 에 기반을 둔 파일명의 사용자 메타데이터를 저장한 XML 파일을 갖고 있다.userlist.xml 파일은 시스템에 있는 모든 사용자에 대한 데이터를 갖고 있다. -보조 사용자와 제한된 프로필에는 10번부터 시작하는 ID 가 할당된다. * 4.4.2. 사용자 메타데이터 파일 - 요소 속성 id serialNumber flags 사.. 2018. 4. 21.
[android 보안] 사용자 관리 #1 [android 보안] 사용자 관리 #1 출처 : Android Security Internals 4장개요 목차 4. 사용자 관리 4.1. 다중 사용자 지원 개요 4.2. 사용자 종류 4.2.1. 주 사용자(소유자) 4.2.2. 보조 사용자 4.2.3. 제한된 프로필 4.2.4. 게스트 사용자 4.3. 사용자 관리 4.3.1. 명령행 도구 4.3.2. 사용자 상태 및 관련된 브로드캐스트 4.4. 사용자 메타 데이터 4.4.1. 사용자 리스트 파일 4.4.2. 사용자 메타데이터 파일 4.4.3. 사용자 시스템 디렉터리 4.5. 사용자별 앱 관리 4.5.1. 앱 데이터 디렉터리 4.5.2. 앱 공유 4.6. 외부 저장소 4.6.1. 외부 저장소 구현 4.6.2. 다중 사용자 외부 저장소 4.6.3. 외부 저.. 2018. 4. 20.
[android 보안] 패키지 관리 #2 [android 보안] 패키지 관리 #2 3.3. APK 설치 과정 -사이드 로딩(Side loading) 은 구글 플레이 스토어 같은 정식 스토어를 통하지 않고 앱을 직접 내려받아 설치하는 방법을 말한다. -APK 파일을 앱 디렉터리에 직접 복사하면 패키지 매니저가 자동으로 탐지하고 설치한다.패키지 매니저는 앱 디렉터리에 변화가 있는지 늘 감시한다. * 3.3.1 앱 패키지와 데이터의 위치 -/system/vendor/app/ 디렉터리에는 제조사 고유의 앱이 저장된다.사용자 설치 앱은 읽고 쓸 수 있는 userdata 파티션에 설치되며 언제든지 교체 및 제거할 수 있다.대부분의 사용자 설치 앱은 /data/app/ 디렉터리에 설치된다. -시스템 앱이든 사용자 설치 앱이든 데이터는 /data/data/ .. 2018. 4. 19.
반응형