2013년 6월 12일 수요일

토막 지식 2


서비스 관련 지식 복습.





 

System property 파일 이름은  system.prop, locate 명령으로 찾아 보세.

JNI_CreateJavaVM

jint JNI_CreateJavaVM(JavaVM **p_vm, JNIEnv **p_env, void *vm_args);

로드해, Java VM 를 초기화합니다. 현재의 thread가 메인 thread가 됩니다. env 인수를, 메인 thread의 JNI 인터페이스 포인터에 설정합니다.

 


 

 

 

안드로이드 프레임웍에 서비스 추가시

Android / frameworks/ base /services / java

추가될 서비스의 자바 파일을 LOCAL_SRC_FILES 추가.

실재 넣을 파일은 java/com/android/server 아래 적절한 위치에 추가.

 

 

 


base/services/java/com/android/server/pm/PackageSignatures.java
base/services/java/com/android/server/pm/PackageSettingBase.java
base/services/java/com/android/server/pm/PackageSetting.java
base/services/java/com/android/server/pm/PackageManagerService.java
 
 

 


Base/services/java/com/android/server/pm/

PackageSettings - PackageSettingsBase - GrantedPermissions

 

Signature.java -> byte[] 타입의 시그니처 정보 저장.

 

Base/core/java/android/context/pm

 

PackageSignatures

writeXml 함수

readXml 함수

assignSignatures 함수

        Signature[] mSignatures;

        String countStr = parser.getAttributeValue(null, "count");

        mSignatures = new Signature[count];

 

PackageSettingsBase PackageSignature 가지고 있고 , PackageSetting base 상속해서

실재로 쓰여짐.

 

PackageManagerService.java에서

          allowed = (compareSignatures(bp.packageSetting.signatures.mSignatures,

                                 pkgParser.mSignatures) == PackageManager.SIGNATURE_MATCH)

                                 || (compareSignatures(mPlatformPackage.mSignatures,

                                         pkgParser.mSignatures) == PackageManager.SIGNATURE_MATCH);

Signature 정보를 사용함.

 

 


if (bp != null && bp.packageSetting != null) {
 
       final String perm = bp.name;
                 boolean allowed;
                 boolean allowedSig = false;

댓글 없음:

댓글 쓰기

국정원의 댓글 공작을 지탄합니다.

대학원생의 투고 지도 ④ (완결) — 논문의 수준이란 무엇인가: 사다리와 사분위, 첫 논문 전략

완결편이다. "논문 수준"이라는 말을 해부하고, 에듀테크 석사생의 첫 논문 전략으로 마친다. 학위논문과 학술지 논문은 다른 장르다 먼저 가장 흔한 혼동부터. 학위논문(thesis)은 "내가 연구를 수행할 줄 안다...