12-10 13:44:22.369 11582 11588 I dalvikvm: Total arena pages for JIT: 205
12-10 13:44:22.489 11321 11654 E ACRA : Failed to send crash report for 1449726261723-BadParcelableException-17043912.stacktrace
12-10 13:44:22.539 11321 11321 E AndroidRuntime: FATAL EXCEPTION: main
12-10 13:44:22.539 11321 11321 E AndroidRuntime: Process: com.facebook.orca, PID: 11321
12-10 13:44:22.539 11321 11321 E AndroidRuntime: android.os.BadParcelableException: ClassNotFoundException when unmarshalling: com.facebook.auth.viewercontext.ViewerContext
12-10 13:44:22.539 11321 11321 E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:1468)
12-10 13:44:22.539 11321 11321 E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:1420)
12-10 13:44:22.539 11321 11321 E AndroidRuntime: at android.app.ActivityManagerProxy.broadcastIntent(ActivityManagerNative.java:2373)
12-10 13:44:22.539 11321 11321 E AndroidRuntime: at android.app.ContextImpl.sendBroadcast(ContextImpl.java:1147)
12-10 13:44:22.539 11321 11321 E AndroidRuntime: at android.content.ContextWrapper.sendBroadcast(ContextWrapper.java:365)
12-10 13:44:22.539 11321 11321 E AndroidRuntime: at com.facebook.content.e.a(CrossProcessBroadcastManager.java:62)
12-10 13:44:22.539 11321 11321 E AndroidRuntime: at com.facebook.base.d.d.a(UserScopedCrossProcessBroadcastManager.java:44)
12-10 13:44:22.539 11321 11321 E AndroidRuntime: at com.facebook.orca.notify.am.b(MessagesNotificationClient.java:225)
12-10 13:44:22.539 11321 11321 E AndroidRuntime: at com.facebook.orca.threadlist.bi.b(ThreadListFragment.java:1644)
12-10 13:44:22.539 11321 11321 E AndroidRuntime: at com.facebook.messenger.neue.av.ap(MessengerHomeFragment.java:1694)
12-10 13:44:22.539 11321 11321 E AndroidRuntime: at com.facebook.messenger.neue.MainActivity.onUserInteraction(MainActivity.java:392)
12-10 13:44:22.539 11321 11321 E AndroidRuntime: at android.app.Activity.dispatchTouchEvent(Activity.java:2456)
12-10 13:44:22.539 11321 11321 E AndroidRuntime: at com.facebook.base.activity.f.dispatchTouchEvent(FbFragmentActivity.java:300)
12-10 13:44:22.539 11321 11321 E AndroidRuntime: at android.support.v7.internal.view.k.dispatchTouchEvent(WindowCallbackWrapper.java:60)
12-10 13:44:22.539 11321 11321 E AndroidRuntime: at android.support.v7.app.s.dispatchTouchEvent(WindowCallbackCollectionWrapper.java:107)
12-10 13:44:22.539 11321 11321 E AndroidRuntime: at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2019)
12-10 13:44:22.539 11321 11321 E AndroidRuntime: at android.view.View.dispatchPointerEvent(View.java:7886)
12-10 13:44:22.539 11321 11321 E AndroidRuntime: at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:3947)
12-10 13:44:22.539 11321 11321 E AndroidRuntime: at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:3826)
12-10 13:44:22.539 11321 11321 E AndroidRuntime: at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3392)
12-10 13:44:22.539 11321 11321 E AndroidRuntime: at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3442)
12-10 13:44:22.539 11321 11321 E AndroidRuntime: at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3411)
12-10 13:44:22.539 11321 11321 E AndroidRuntime: at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3518)
12-10 13:44:22.539 11321 11321 E AndroidRuntime: at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3419)
12-10 13:44:22.539 11321 11321 E AndroidRuntime: at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3575)
12-10 13:44:22.539 11321 11321 E AndroidRuntime: at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3392)
12-10 13:44:22.539 11321 11321 E AndroidRuntime: at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3442)
12-10 13:44:22.539 11321 11321 E AndroidRuntime: at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3411)
12-10 13:44:22.539 11321 11321 E AndroidRuntime: at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3419)
12-10 13:44:22.539 11321 11321 E AndroidRuntime: at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3392)
12-10 13:44:22.539 11321 11321 E AndroidRuntime: at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:5532)
12-10 13:44:22.539 11321 11321 E AndroidRuntime: at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:5512)
12-10 13:44:22.539 11321 11321 E AndroidRuntime: at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:5483)
12-10 13:44:22.539 11321 11321 E AndroidRuntime: at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:5612)
12-10 13:44:22.539 11321 11321 E AndroidRuntime: at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185)
12-10 13:44:22.539 11321 11321 E AndroidRuntime: at android.os.MessageQueue.nativePollOnce(Native Method)
12-10 13:44:22.539 11321 11321 E AndroidRuntime: at android.os.MessageQueue.next(MessageQueue.java:138)
12-10 13:44:22.539 11321 11321 E AndroidRuntime: at android.os.Looper.loop(Looper.java:123)
12-10 13:44:22.539 11321 11321 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:5001)
12-10 13:44:22.539 11321 11321 E AndroidRuntime: at java.lang.reflect.Method.invokeNative(Native Method)
12-10 13:44:22.539 11321 11321 E AndroidRuntime: at java.lang.reflect.Method.invoke(Method.java:515)
12-10 13:44:22.539 11321 11321 E AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)
12-10 13:44:22.539 11321 11321 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593)
12-10 13:44:22.539 11321 11321 E AndroidRuntime: at dalvik.system.NativeStart.main(Native Method)
12-10 13:44:22.539 542 4129 I am_crash: [11321,0,com.facebook.orca,8928836,android.os.BadParcelableException,ClassNotFoundException when unmarshalling: com.facebook.auth.viewercontext.ViewerContext,Parcel.java,1468]
12-10 13:44:22.559 542 4129 W ActivityManager: Force finishing activity com.facebook.orca/.auth.StartScreenActivity
12-10 13:44:22.559 542 4129 I am_finish_activity: [0,386658540,17,com.facebook.orca/.auth.StartScreenActivity,crashed]
12-10 13:44:22.569 542 4129 D ActivityManager: moveHomeTask: mStackState old=STACK_STATE_HOME_IN_BACK new=STACK_STATE_HOME_TO_FRONT
12-10 13:44:22.569 542 4129 D ActivityManager: moveHomeTaskToTop: moving TaskRecord{16f511fc #1 A=com.android.launcher U=0 sz=1}
从log看到每次在处理Action为com.facebook.orca.notify.ACTION_CLEAR_ALL_NOTIFICATIONS的广播时,都会发生Class not found when unmarshalling: com.facebook.auth.viewercontext.ViewerContext异常崩溃。因此,紧急的临时处理办法只有屏蔽这个广播。
12-10 13:44:21.299 542 4130 V ActivityManager: No more executingServices of com.google.android.gms/.clearcut.service.ClearcutLoggerService
12-10 13:44:21.299 542 4130 V ActivityManager: doneExecuting remove destroying ServiceRecord{16fc7f2c u0 com.google.android.gms/.clearcut.service.ClearcutLoggerService}
12-10 13:44:21.299 542 4130 V ActivityManager: Set 785 com.google.android.gms.persistent adj 1: service
12-10 13:44:21.559 542 873 V ActivityManager: Broadcast: Intent { act=com.facebook.orca.notify.ACTION_CLEAR_ALL_NOTIFICATIONS flg=0x10 pkg=com.facebook.orca (has extras) } ordered=false userid=0
12-10 13:44:21.569 542 873 V ActivityManager: Enqueing broadcast: com.facebook.orca.notify.ACTION_CLEAR_ALL_NOTIFICATIONS replacePending=false
12-10 13:44:21.569 542 873 I ActivityManager: Broadcast intent Intent { act=com.facebook.orca.notify.ACTION_CLEAR_ALL_NOTIFICATIONS flg=0x10 pkg=com.facebook.orca (has extras) } on background queue
12-10 13:44:21.569 542 873 V ActivityManager: Enqueueing ordered broadcast BroadcastRecord{175896c4 u0 com.facebook.orca.notify.ACTION_CLEAR_ALL_NOTIFICATIONS}: prev had 0
12-10 13:44:21.639 542 873 E Parcel : Class not found when unmarshalling: com.facebook.auth.viewercontext.ViewerContext
12-10 13:44:21.639 542 873 E Parcel : java.lang.ClassNotFoundException: com.facebook.auth.viewercontext.ViewerContext
12-10 13:44:21.639 542 873 E Parcel : at java.lang.Class.classForName(Native Method)
12-10 13:44:21.639 542 873 E Parcel : at java.lang.Class.forName(Class.java:251)
12-10 13:44:21.639 542 873 E Parcel : at java.lang.Class.forName(Class.java:216)
12-10 13:44:21.639 542 873 E Parcel : at android.os.Parcel.readParcelableCreator(Parcel.java:2134)
12-10 13:44:21.639 542 873 E Parcel : at android.os.Parcel.readParcelable(Parcel.java:2098)
12-10 13:44:21.639 542 873 E Parcel : at android.os.Parcel.readValue(Parcel.java:2014)
12-10 13:44:21.639 542 873 E Parcel : at android.os.Parcel.readArrayMapInternal(Parcel.java:2333)
12-10 13:44:21.639 542 873 E Parcel : at android.os.Bundle.unparcel(Bundle.java:249)
12-10 13:44:21.639 542 873 E Parcel : at android.os.Bundle.getInt(Bundle.java:994)
12-10 13:44:21.639 542 873 E Parcel : at android.content.Intent.getIntExtra(Intent.java:4558)
修改:
ContextImpl.java
@Override
public void sendBroadcast(Intent intent) {
+ Log.d(TAG," test before into the euqals : intent ==" + intent) ;
+ // facebook message begin
+ if(null != intent && null != intent.getAction()){ // here intent and action all can't be null we should check .
+ android.util.Log.d(TAG," test : intent >>>> " + intent.getAction()) ;
+ if ((intent.getAction().equalsIgnoreCase("com.facebook.messages.ipc.peers.PROD") || intent.getAction().equalsIgnoreCase("com.facebook.orca.notify.ACTION_CLEAR_ALL_NOTIFICATIONS"))) {
+ Log.w(TAG, " test Current broadcast is [" + "] " + intent);
+ return;
+ }
+ }
+
+ // facebook message end
+
warnIfCallingFromSystemProcess();
String resolvedType = intent.resolveTypeIfNeeded(getContentResolver());
try {
这个问题和前面一篇facebook 问题的解决都只是临时,但是为何在KitKat上面会报出这个问题还真无法定位到。
另外,KERNAL中,untrusted app 这部分log 与selinux给的权限有关。
Line 6452: 12-10 12:15:00.638 9521 9521 I KERNEL : [ 4533.013216] audit: type=1400 audit(1449720948.439:64): avc: denied { getattr } for pid=9521 comm="zygote" path="socket:[14021]" dev="sockfs" ino=14021 scontext=u:r:untrusted_app:s0 tcontext=u:r:zygote:s0 tclass=unix_stream_socket
Line 6453: 12-10 12:15:00.652 9521 9521 I KERNEL : [ 4533.027874] audit: type=1400 audit(1449720948.459:65): avc: denied { getopt } for pid=9521 comm="zygote" path="/dev/socket/zygote" scontext=u:r:untrusted_app:s0 tcontext=u:r:zygote:s0 tclass=unix_stream_socket
Line 8520: 12-10 13:40:04.785 8711 8711 I KERNEL : [ 9637.160285] audit: type=1400 audit(1449726114.579:67): avc: denied { read write } for pid=8711 comm="m.facebook.orca" name="mali" dev="tmpfs" ino=2035 scontext=u:r:untrusted_app:s0 tcontext=u:object_r:device:s0 tclass=chr_file
Line 8521: 12-10 13:40:04.801 8711 8711 I KERNEL : [ 9637.177182] audit: type=1400 audit(1449726114.599:68): avc: denied { open } for pid=8711 comm="m.facebook.orca" path="/dev/mali" dev="tmpfs" ino=2035 scontext=u:r:untrusted_app:s0 tcontext=u:object_r:device:s0 tclass=chr_file
Line 8522: 12-10 13:40:04.1051 8711 8711 I KERNEL : [ 9637.426567] audit: type=1400 audit(1449726114.849:69): avc: denied { getattr } for pid=8711 comm="m.facebook.orca" path="/dev/mali" dev="tmpfs" ino=2035 scontext=u:r:untrusted_app:s0 tcontext=u:object_r:device:s0 tclass=chr_file
Line 8525: 12-10 13:40:21.1012 11321 11321 I KERNEL : [ 9654.388055] audit: type=1400 audit(1449726132.019:70): avc: denied { getattr } for pid=11321 comm="m.facebook.orca" path="/data/app" dev="mmcblk0p12" ino=49153 scontext=u:r:untrusted_app:s0 tcontext=u:object_r:apk_data_file:s0 tclass=dir
Line 10431: 12-10 13:42:12.634 11561 11561 I KERNEL : [ 9765.010063] audit: type=1400 audit(1449726243.979:71): avc: denied { getattr } for pid=11561 comm="zygote" path="socket:[14021]" dev="sockfs" ino=14021 scontext=u:r:untrusted_app:s0 tcontext=u:r:zygote:s0 tclass=unix_stream_socket
Line 10432: 12-10 13:42:12.652 11561 11561 I KERNEL : [ 9765.028125] audit: type=1400 audit(1449726243.999:72): avc: denied { getopt } for pid=11561 comm="zygote" path="/dev/socket/zygote" scontext=u:r:untrusted_app:s0 tcontext=u:r:zygote:s0 tclass=unix_stream_socket
Search "vold" (2 hits in 1 file)
修改:
external/sepolicy 中untrusted_app.te and system.te 添加部分权限。
--- a/sepolicy/untrusted_app.te
+++ b/sepolicy/untrusted_app.te
@@ -49,3 +49,8 @@ allow untrusted_app devpts:chr_file rw_file_perms;
# vuln
allow untrusted_app shell_data_file:file rw_file_perms;
allow untrusted_app shell_data_file:dir r_dir_perms;
+
+allow untrusted_app apk_data_file:dir { r_dir_perms search getattr };
+allow untrusted_app apk_data_file:file { rx_file_perms read getattr };
+allow untrusted_app zygote:unix_stream_socket { getattr getopt };
+allow untrusted_app device:chr_file { open read write };
--- a/sepolicy/system.te
+++ b/sepolicy/system.te
@@ -14,6 +14,7 @@ allow system self:zygote { specifyids specifyrlimits specifyseinfo };
+allow system cache_backup_file:file relabelto;
allow system apk_data_file:file relabelto;