@@ -114,7 +114,10 @@ interface SystemServerStartingParam {
114114 * Wraps information about the hot reloading event.
115115 * <p>
116116 * Hot reloading is supported only for modules that declare exactly one Java entry class.
117- * Modules with multiple Java entry classes are rejected before hot reload callbacks are invoked.
117+ * Modules with zero or multiple Java entry classes are rejected before hot reload callbacks
118+ * are invoked. Modules that declare native entries are not hot-reloadable. If module code
119+ * successfully loads a native library in a target process, that target is no longer
120+ * hot-reloadable until it restarts.
118121 * </p>
119122 */
120123 @ SinceApi (XposedInterface .API_102 )
@@ -240,13 +243,21 @@ default void onSystemServerStarting(@NonNull SystemServerStartingParam param) {
240243 * <p>This callback runs in <b>old</b> code.</p>
241244 * <p>
242245 * Hot reloading is supported only for modules that declare exactly one Java entry class.
243- * Modules with multiple Java entry classes are rejected before this callback is invoked.
246+ * Modules with zero or multiple Java entry classes and modules that declare native entries
247+ * are rejected before this callback is invoked. If module code successfully loads a native
248+ * library in a target process, that target is no longer hot-reloadable until it restarts.
244249 * </p>
245250 * <p>
246251 * Hot reloads are serialized per target. Before the old hook handle list is captured, the
247252 * framework freezes old code so further hook registrations from old code fail. In-flight hook
248253 * calls keep using the hook chain snapshot that was active when they started.
249254 * </p>
255+ * <p>
256+ * Returning {@code false} rejects the hot reload request. For service-triggered requests, this
257+ * is reported as {@code HotReloadResult.Status.FAILED} with a null message. If this callback
258+ * or the subsequent reload operation throws, the request is reported as failed with a
259+ * framework-provided diagnostic message.
260+ * </p>
250261 *
251262 * @param param Information about the hot reloading event
252263 * @return {@code true} to allow hot reloading to proceed, {@code false} to cancel hot reloading
@@ -261,7 +272,9 @@ default boolean onHotReloading(@NonNull HotReloadingParam param) {
261272 * <p>This callback runs in <b>new</b> code.</p>
262273 * <p>
263274 * Hot reloading is supported only for modules that declare exactly one Java entry class.
264- * Modules with multiple Java entry classes are rejected before hot reload callbacks are invoked.
275+ * Modules with zero or multiple Java entry classes are rejected before hot reload callbacks
276+ * are invoked. Modules that declare native entries are not hot-reloadable. Hot reload also
277+ * does not unload, reload, or replace native libraries loaded by module code.
265278 * </p>
266279 * <p>
267280 * Package lifecycle callbacks are not automatically replayed after hot reload. Override this
0 commit comments