SEAndroid를 이해하기 위해서는 SELinux를 알아야 한다. 안드로이드 커널이 리눅스 커널을 모체로 하고 있으니까. 잠시 (사실 거의 같다) 암패치 해 주시는 뭐시기 킹께 감사.
SE리눅스는 NSA에서 개발했고 지금은 kernel.org에 속속들이 들어가고 있다. nsa에 커널 2.6대까지 밖에 없어서 중단되었냐고 물어보니까 걍 각 패키지에 녹아 들어가서 거기서 알아서 하고 있다고 한다. 결국 NSA가 만들긴 했지만 수많은 기여자가 열심히 SE 안드로이드를 개발하고 있는 것이다.
SE 리눅스 설정파일 /etc/sysconfig/selinux 에 있다.
켤려면 enforcing 끌려면 disabled.
이정도로 하고 SE Android...
SE Android 는 NSA의 Open Source Project 로 시작 Android의 부족한 Security 부분을 보완
일반적인 Linux의 DAC 방식 대신 MAC 방식 채용
DAC 란 : Discretionary Access Control. 임의적 접근 통제. 객체 접근 시 소유자, 그룹, 접근허가 집합 등에 의거하여 통제.
MAC 란 : Mandatory Access Control. 강제적 접근 통제. 주어진 객체의 보안레벨에 따라 자원접근을 통제.
Policy control 을 통한 process, daemon, app 등의 제한적 권한 설정 가능
Policy 설정에 따라 root 권한도 특정 device 에 접근하지 못하도록 하는 것이 가능
LSM이 약자인 리눅스 시큐리티 모듈은 그럼 언제 활성화 되는가?
DAC를 통과하면(우리가 생각하는 chmod 777권한
rwxrwxrwx... MAC퍼미션을 체크하는데 이 때 가동이 된다.)
Kernel : SELinux feature 의 enable, android binder patch, xattr support feature enable
Bionic : xattr support
Build : make_ext4fs tool 수정
external : libselinux, libsepol, checkpolicy, sepolicy
framework/base : selinux 를 위한 JNI binding 추가
각 daemon 별, 중요 process 별로 policy file 을 가짐.
Application 의 경우 release, media, shared, platform 의 4개의 key 중 하나를 가지며, SE Android 는 이 key 를 기반으로 policy 를 정함.
키 정보
국내 ubuntu 폰트를 외국 엔지니어가 보더니 보더니 영문판으로 다시 밀어버린 사건이 발생했다. 다시 환경 설정이 번거롭더라도 해당 폰트는 도저히 맘에 안 들었나 보다. 뭐, 내가 알고 있는 폰트 설정도 없으니. 안드로이드 메인 브랜치 소스를 한번 받아 보려고 한다. 안드로이드 빌드 환경 설정 http://source.android.com/source/initializing.html 하기 전에 소스 부터 받아보자. http://source.android.com/source/downloading.html 에 있다. 위에 링크나 아래 링크나 다 같은 동네에 있다. cURL을 이용하는 것 같은데 설명은 여기 http://aramjo.blog.me/120169143589 실컷하다가 * [new tag] android-2.0_r1_ -> android-2.0_r1_ * [new tag] android-2.0.1_r1_ -> android-2.0.1_r1_ * [new tag] android-1.6_r2_ -> android-1.6_r2_ * [new tag] android-1.6_r1_ -> android-1.6_r1_ * [new tag] android-1.6_r1.5_ -> android-1.6_r1.5_ * [new tag] android-1.6_r1.4_ -> android-1.6_r1.4_ * [new tag] android-1.6_r1.3_ -> android-1.6_r1.3_ * [new tag] android-1.6_r1.2_ -> android-1.6_r1.2_ * [new tag] android-1.6_r1.1_ -> android-1.6_r1.1_ fatal: remote error: User Is Over Quota 뭐 이딴 에러가 난다. 서버 능력이 딸리나 보다ㅠ 한번 오류가 나오고 나면 계속 에러 난다. File "/home/cer/bin/WORKING_DIRECTORY/.repo/repo/main.py", line 384, in <module> _Main(sys.argv[1:]) File "/home/cer/bin/WORKING_DIRECTORY/.repo/repo/main.py", line 364, in _Main rm -rf .repo/하고 다시 해 주면 된다. fatal: remote error: User Is Over Quota 조금 되는 듯 싶더니 이자식은 꾸준히 나온다 ㅠㅠ 모지모지모지? 구글링 해보니 이런 내용이 있다. https://groups.google.com/forum/#!msg/android-building/_975cuUxVTw/usrfKSHXhe4J -The quota is large enough to clone 3 regular trees per day per IP address, or a full mirror plus a regular tree. If should also be enough to git fetch an entire regular tree per day, and to do at least a no-op repo sync of a full mirror every hour. 일단 내일 해본다... 그런데 미국 시간 기준이야? 한국 시간 기준이야 ㅡㅡ;
댓글 없음:
댓글 쓰기
국정원의 댓글 공작을 지탄합니다.