종속성 맵은 단독으로 변경될 수 있는 항목을 보여줍니다.

애플리케이션은 전이적 종속성을 로드하는 하나의 기본 라이브러리를 로드할 수 있습니다. 타사 SDK에는 내보내기 또는 특정 초기화 순서에 따라 달라지는 기본 구성 요소가 포함될 수 있습니다.

라이브러리 이름, 직접 및 전이적 종속성, 로드 진입점, 초기화 타이밍 및 호출자를 기록합니다. 그렇지 않으면 나중에 다른 라이브러리가 로드될 때만 SO 하나의 변경이 실패할 수 있습니다.

  • 기본 및 전이적 종속성
  • 시스템 및 타사 라이브러리
  • 로드 입력 및 초기화 순서
  • 초기 실패 단계

JNI 등록으로 인해 기호 처리가 제한됩니다.

정적 등록은 명명 규칙에 의존하는 반면 동적 등록은 일반적으로 초기화 중에 Java 메서드를 기본 함수에 바인딩합니다. 가시성, 이름 바꾸기 및 로드 타이밍에 대해 서로 다른 제약 조건을 적용합니다.

내보내기 또는 함수 표현을 변경하기 전에 모든 중요한 항목이 등록되는 방법, 리플렉션 또는 타사 코드에서 호출하는지 여부, Java 및 기본 오류가 모두 진단되는 방법을 식별하세요.

ABI는 레이블이 아닌 실행 경계입니다.

arm64-v8a, armeabi-v7a 및 x86_64는 서로 다른 명령어, 연결된 출력 및 종속성을 사용합니다. 하나의 ABI에 대한 성공적인 빌드 또는 에뮬레이터 실행은 다른 대상 아키텍처를 설정하지 않습니다.

최종 APK에서 ABI를 검사한 다음 종속성 해결, 애플리케이션 실행, 중요한 JNI 호출, 오류 처리 및 각 대상 아키텍처의 타사 SDK 경로를 확인합니다.

  • 최종 패키지에는 대상 ABI가 포함되어 있습니다.
  • 모든 종속성은 해결됩니다.
  • 중요한 JNI 경로가 반복됩니다.
  • 발견된 아키텍처는 명시적입니다.

적재 안정성으로 보호 강도 수용

기호 축소, 문자열 처리 및 기능 가상화는 다양한 단서를 제거합니다. 단일 작업이 완전한 기본 보호를 나타내지는 않으며, 애플리케이션 실행이나 자주 실행되는 기능에는 특별한 성능 주의가 필요합니다.

명확한 입력과 출력을 갖춘 몇 가지 유용한 기능 세트로 시작하세요. 동일한 후보의 범위를 확장하고 모든 구성 변경에 대해 복구 가능한 버전을 유지합니다.

지침을 실제 애플리케이션에 적용

Yudun이 집중적인 보호 및 호환성 검토를 권장할 수 있도록 스택, 중요 경로, 대상 시스템 및 현재 후보를 제공합니다.