Skip to content
Commit 138c2dc6 authored by Riddle Hsu's avatar Riddle Hsu
Browse files

Fix system crash by debug parameters of activity launch

Since AMS and ATMS use different lock, setDebugFlagsForStartingActivity
is posted to execute so it won't run on binder thread. And it may
throw security exception if not debuggable, that causes crash on system
server's thread (android.display).

Except dealing with the exception, it is more efficient to check before
calling setDebugFlagsForStartingActivity. And the check also avoids the
case of setDebugApp that enforces permission which is always passed on
non binder thread.

3 cases on a non-debuggable device (Build.IS_DEBUGGABLE is false):
 1. adb shell am start -n com.android.settings/.Settings -S -D
    > Debugger dialog should not popup.
 2. adb shell am start -n com.android.settings/.Settings -S \
      --start-profiler /data/local/tmp/p
    > System should not crash.
 3. Call IActivityTaskManager#startActivity by reflection to launch
    a non-debuggable app with debug flags.
    > System should not crash.

Bug: 208266893
Bug: 192247102
Test: atest AmProfileTests AmStartOptionsTests

Change-Id: I086635a50d8750580127f0b2868e5a241ac5f913
parent f774fb2f
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment