Xposed 프레임워크 Inspeckage 플러그인crash 분석
17739 단어 이동 안전
E/AndroidRuntime(10336): Process: mobi.acpm.inspeckage, PID: 10336
E/AndroidRuntime(10336): java.lang.RuntimeException: Package manager has died
E/AndroidRuntime(10336): at android.app.ApplicationPackageManager.getPackageInfo(ApplicationPackageManager.java:111)
E/AndroidRuntime(10336): at mobi.acpm.inspeckage.util.PackageDetail.<init>(PackageDetail.java:44)
E/AndroidRuntime(10336): at mobi.acpm.inspeckage.ui.MainFragment.loadSelectedApp(MainFragment.java:308)
E/AndroidRuntime(10336): at mobi.acpm.inspeckage.ui.MainFragment.access$000(MainFragment.java:44)
E/AndroidRuntime(10336): at mobi.acpm.inspeckage.ui.MainFragment$1.onChildClick(MainFragment.java:111)
E/AndroidRuntime(10336): at android.widget.ExpandableListView.handleItemClick(ExpandableListView.java:716)
E/AndroidRuntime(10336): at android.widget.ExpandableListView.performItemClick(ExpandableListView.java:655)
E/AndroidRuntime(10336): at android.widget.AbsListView$PerformClick.run(AbsListView.java:3053)
E/AndroidRuntime(10336): at android.widget.AbsListView$3.run(AbsListView.java:3860)
E/AndroidRuntime(10336): at android.os.Handler.handleCallback(Handler.java:739)
E/AndroidRuntime(10336): at android.os.Handler.dispatchMessage(Handler.java:95)
E/AndroidRuntime(10336): at android.os.Looper.loop(Looper.java:135)
E/AndroidRuntime(10336): at android.app.ActivityThread.main(ActivityThread.java:5305)
E/AndroidRuntime(10336): at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(10336): at java.lang.reflect.Method.invoke(Method.java:372)
E/AndroidRuntime(10336): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
E/AndroidRuntime(10336): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
E/AndroidRuntime(10336): at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:107)
E/AndroidRuntime(10336): Caused by: android.os.TransactionTooLargeException
E/AndroidRuntime(10336): at android.os.BinderProxy.transactNative(Native Method)
E/AndroidRuntime(10336): at android.os.BinderProxy.transact(Binder.java:496)
E/AndroidRuntime(10336): at android.content.pm.IPackageManager$Stub$Proxy.getPackageInfo(IPackageManager.java:1786)
E/AndroidRuntime(10336): at android.app.ApplicationPackageManager.getPackageInfo(ApplicationPackageManager.java:106)
E/AndroidRuntime(10336): ... 17 more
문제 코드:
가방 이름:mobi.acpm.inspeckage.Module 클래스 이름: PackageDetail
mPInfo.activities = pm.getPackageInfo(app, PackageManager.GET_ACTIVITIES).activities;
분석 결과:
Binder crash가 Runtime Exception을 던진 것은 응용 프로그램 Package Info에서 데이터를 너무 많이 가져와 Binder가 전달할 수 있는 최대 용량을 초과하여 Package Manager가 붕괴되었기 때문이다.
솔루션:
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
진격의 안드로이드 주입술 <둘>우리가 평소에 말한 코드 주입은 주로 정태와 동태 두 가지 방식이다 정적 주입은 실행 가능한 파일을 대상으로 한다. 예를 들어 평소에 우리가 ELF, DEX 파일을 수정하는 등 관련 보조 도구도 많다. 동적 주입은 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.