Merge "ftrace_reader: Add code to reset ftrace state"
diff --git a/src/traced/probes/ftrace_producer.h b/src/traced/probes/ftrace_producer.h
index 27c292a..95c9a99 100644
--- a/src/traced/probes/ftrace_producer.h
+++ b/src/traced/probes/ftrace_producer.h
@@ -60,8 +60,11 @@
 
    private:
     std::unique_ptr<FtraceSink> sink_ = nullptr;
-    TraceWriter::TracePacketHandle trace_packet_;
     std::unique_ptr<TraceWriter> writer_;
+
+    // Keep this after the TraceWriter because TracePackets must not outlive
+    // their originating writer.
+    TraceWriter::TracePacketHandle trace_packet_;
   };
 
   enum State {
diff --git a/test/AndroidTest.xml b/test/AndroidTest.xml
index 3f2a230..8f529af 100644
--- a/test/AndroidTest.xml
+++ b/test/AndroidTest.xml
@@ -21,10 +21,7 @@
         <option name="push" value="perfetto_unittests->/data/local/tmp/perfetto_unittests" />
         <option name="push" value="perfetto_integrationtests->/data/local/tmp/perfetto_integrationtests" />
     </target_preparer>
-    <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
-        <option name="run-command" value="setprop persist.traced.enable 1" />
-        <option name="teardown-command" value="setprop persist.traced.enable 0" />
-    </target_preparer>
+    <option name="post-boot-command" value="setprop persist.traced.enable 1" />
     <test class="com.android.tradefed.testtype.GTest" >
       <option name="native-test-device-path" value="/data/local/tmp/perfetto_unittests" />
       <option name="module-name" value="perfetto_unittests" />