Notice
Recent Posts
Recent Comments
Link
«   2026/08   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
Archives
Today
Total
관리 메뉴

undefined

[Android] hidden-api 본문

안드로이드

[Android] hidden-api

un-defined 2023. 10. 15. 18:10

오류 해결을 위해 hidden-api 파일을 수정해야 했던 적이 있다. 검색을 해봤지만 의문투성이였던 이 파일의 역할을 정리해본다.

 

hidden-api 를 검색하면

hidden-api.xml 파일은 Android 프레임워크에 포함된 Java API 중에서 개발자가 사용해서는 안 되는 API를 나열합니다. 이 파일에는 다음과 같은 API가 포함될 수 있습니다. 라고 나온다.

  • 개발 중인 API
  • 안정적이지 않은 API
  • 향후 버전의 Android에서 제거될 API

를 정의하는 파일이라고 하는데.. 여기에 api를 정의하지 않으면 jar에서 api를 찾지 못했다.

 

이 당시 나는 굉장히 혼란스러웠는데

1. 왜... 프레임워크에 있는 소스 그대로 뽑아서 만든 jar파일인데 함수를 못찾아...?

2. 아니 사용하면 안되는 api를 정의하라며.. 근데 왜 앱은 hidden-api 파일에 정의해야만 찾는거?

 

결론적으로,

hidden-api.txt에 정의된 api는 개발자가 '직접' 사용하면 안된다 -> 내가 코드로 직접 호출하지만 않으면 된다

jar를 통해 호출할 api는 hidden-api.txt에 정의해두어야 한다. -> 내가 직접 호출하는게 아니고 jar를 통해 호출하니까 괜찮다..

이런 의미였던 것 같다.

 

 

즉, hidden-api에는 jar에서 사용해야하는 api들이 정의되어있어야 하며, 이 api들은 개발자가 '직접'사용하면 안된다.

 

여담으로 hidden-package 라는 파일도 있는데 여기에는 패키지 단위로 정의할 수 있다.

또 @hide와 비슷하지만 hide와는 달리 강제성을 가진다고 한다.

더보기

추가 ) 

기준 hidden-api whitelist graylist blacklist
용도 개발자가 사용해서는 안 되는 API를 나열 허용된 항목을 나열 허용 또는 차단 여부가 결정되지 않은 항목을 나열 차단된 항목을 나열
포함 내용 Android 프레임워크에 포함된 API 허용된 API 허용 또는 차단 여부가 결정되지 않은 API 차단된 API
목적 개발자가 해당 API를 사용하지 않도록 강제 개발자가 해당 API를 사용하도록 허용 개발자가 해당 API를 사용해야 하는지 여부를 결정 개발자가 해당 API를 사용하지 못하도록 차단
반응형
Comments