Android 5.0에서 selinux (SE Linux)의 허용 및 적용 메커니즘을 확인하고 있습니다. .so 파일을 /data/data/packageName/files/libtestcalc.so에 넣었습니다.경로에서 Android로드 라이브러리
장치가 허용 모드 인 경우 System.load ("/ data/data/packageName/files/libtestcalc.so"); - 잘 작동하고 예외가없는 .so 파일의 메서드에 액세스 할 수 있습니다.
동일한 System.load ("/ data/data/packageName/files/libtestcalc.so"); 장치가 강제 모드에있을 때 작동하지 않고 다음과 같이 예외가 발생합니다.
에서 java.lang.UnsatisfiedLinkError : "/data/data/packageName/files/libtestcalc.so"1 세그먼트 매핑 할 수 있습니다 : 권한이
내가 모드 모두에서 추측을 부인을, 같은 호출 흐름 실패를한다면 dlopen 일어날 것이다. System.load (..) -> Runtime.getRuntime(). load (..) -> Runtime.getRuntime (..). doload (..) -> Runtime.getRuntime(). nativeLoad (..)를 의미합니다.)
는 "nativeLoad 동기화해야합니다 그래서 ...에 관계없이 사용 하나 LD_LIBRARY_PATH있다"로 @ Runtime.java-> doLoad (..) 문서가이 LD_LIBRARY_PATH이 업데이 트됩니다 때
언급?
android가 모드별로로드 파일을 차별화하는 방법은 무엇입니까? "/ data/data/packageName/files /"에서 .so 파일을로드하는 다른 방법을 알고 싶습니다.
이 문제에 대한 해결책이 있습니까? –