<activity android:label="@string/app_name" android:name=".SplashActivity" android:screenOrientation="portrait" android:theme="@android:style/Theme.NoTitleBar">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
안드로이드 manifest 파일엔 Activity 중에 다른 앱이 해당 앱을 실행 시킬 수 있도록 하는 기능이 있다.
http://nuninaya.tistory.com/556
android:exported – 다른 애플리케이션의 컴포넌트에서 이 액티비티를 런치 할 수 있는지를 설정한다. “false”라면 이 액티비티는 같은 애플리케이션 혹은 같은 유저 ID를 가진 애플리케이션 컴포넌트만 런치 할 수 있다. 디폴트는 액티비티가 인텐트 필터를 포함하는지에 달려있다. 필터가 없다면 디폴트 값이 “false”이고 필터가 있다면 “true”이다.
MAIN/LAUNCHER 액티비티에는 절대로 “false”값을 주면 안 된다. “false”값을 주게 되면 SecurityException이 발생하고 exported 속성을 true로 설정해 달라는 메시지가 출력된다.
이 activity 말고, 글을 쓴다거나 임의 동작을 실행시키도록 기능이 동작한다면, 보안 위협이 될 수 있다. 이를 방지하기 위해
<activity
android:name=".MyActivity"
android:exported="false"
android:noHistory="true" >
<intent-filter>
...........................
를 사용하는데, android:exported="false" 가 핵심 키워드이다. 기능이 악용되거나 운영 서버에 영향을 미칠만한 activity 가 무분별하게 공개되어 있다면, 해당 옵션을 설정해야 할 것이다.
댓글 달기