На рутированном устройстве или эмуляторе вы можете подключить gdb к zygote и поставить точку останова там, где вновь разветвленный процесс должен принять идентичность запускаемого приложения.
Вероятно, будет проще, если вы измените zygote, чтобы дождаться присоединения отладчика. Я полагаю, что в системе отладки Jdwp есть что-то подобное, что может привести вас к отладчику Java на ранних этапах запуска этого кода, но я не знаю чего-то сравнимого с уже встроенным GDB. Хотя я полагаю, вы могли бы ожидать его ожидания для jdwp и присоедините gdb перед тем, как присоединять (а затем отсоединять) отладчик java.
Обновление: я попробовал это, прикрепив к zygote с помощью gdb и изменив одно слово кода, которое будет выполнено вначале дочерним элементом, чтобы перейти в бесконечный цикл, а затем отсоединиться от zygote. Я подумал, что я запишу нового ребенка, как только он появится в «ps», и восстановлю его, чтобы он мог продолжаться. Проблема в том, что ребенка убивают (предположительно, за то, что он не отвечает) быстрее, чем я могу получить все введенные команды. Так что это должно быть сделано программой. И, возможно, не так много вы сможете увидеть на ранних этапах, не останавливаясь и не убивая его - я имею в виду, что вы, вероятно, могли бы получить там немного, но что вы надеетесь узнать, чего вы не можете извлечь из чтения источника?