Commit 3b195ce
committed
Update hot reload finalization
The final libxposed API 102 hot reload contract makes the old generation responsible for retiring its own Java and native resources before returning true from onHotReloading. The framework also does not call UnregisterNatives, JNI_OnUnload, or dlclose during hot reload, so it must avoid keeping stale framework-owned references after the new generation is handed off.
This updates the libxposed submodule pointers to the finalized API 102 revisions and aligns Vector's implementation with that contract. onHotReloading exceptions now remain diagnostic failures instead of being collapsed into a false rejection, saved state is checked for nested old-classloader objects, old entries are detached after the new state is committed, and failed pre-commit reload attempts clean up only newly-created hooks while preserving the old hook handles.
The daemon-side service status mapping is also updated for the final service API: the removed PROP_RT_HOT_RELOAD bit is no longer advertised, HOT_RELOAD_SUCCEEDED is used instead of the draft HOT_RELOAD_SUCCESS name, unsupported targets report HOT_RELOAD_UNSUPPORTED, concurrent reloads report HOT_RELOAD_IN_PROGRESS, and dead target processes report HOT_RELOAD_PROCESS_DIED.
Documentation References:
libxposed XposedModuleInterface hot reload callbacks:
https://libxposed.github.io/api/io/github/libxposed/api/XposedModuleInterface.html#onHotReloaded(io.github.libxposed.api.XposedModuleInterface.HotReloadedParam)1 parent 7cc67f8 commit 3b195ce
7 files changed
Lines changed: 115 additions & 29 deletions
File tree
- daemon/src/main/kotlin/org/matrix/vector/daemon/ipc
- services
- xposed
- src/main/kotlin/org/matrix/vector/impl
- core
- hooks
- zygisk
Lines changed: 12 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
30 | 36 | | |
31 | 37 | | |
32 | 38 | | |
| |||
217 | 223 | | |
218 | 224 | | |
219 | 225 | | |
220 | | - | |
| 226 | + | |
221 | 227 | | |
222 | 228 | | |
223 | 229 | | |
| |||
227 | 233 | | |
228 | 234 | | |
229 | 235 | | |
230 | | - | |
231 | | - | |
232 | | - | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
233 | 241 | | |
234 | 242 | | |
235 | 243 | | |
| |||
Lines changed: 12 additions & 7 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
112 | 112 | | |
113 | 113 | | |
114 | 114 | | |
115 | | - | |
116 | | - | |
117 | | - | |
118 | 115 | | |
119 | 116 | | |
120 | 117 | | |
| |||
158 | 155 | | |
159 | 156 | | |
160 | 157 | | |
161 | | - | |
| 158 | + | |
162 | 159 | | |
163 | 160 | | |
164 | 161 | | |
165 | | - | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
166 | 168 | | |
167 | | - | |
| 169 | + | |
168 | 170 | | |
169 | 171 | | |
| 172 | + | |
170 | 173 | | |
171 | 174 | | |
172 | | - | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
173 | 178 | | |
174 | 179 | | |
175 | 180 | | |
| |||
- README.md+3-3
- interface/src/main/aidl/io/github/libxposed/service/HookedProcess.aidl+2-1
- interface/src/main/aidl/io/github/libxposed/service/IHotReloadCallback.aidl+3
- interface/src/main/aidl/io/github/libxposed/service/IXposedService.aidl+11-14
- service/src/main/java/io/github/libxposed/service/HookedTarget.java+2-1
- service/src/main/java/io/github/libxposed/service/HotReloadResult.java+22-4
- service/src/main/java/io/github/libxposed/service/XposedService.java+18-12
- README.md+15-3
- api/proguard-rules.pro+8-3
- api/src/main/java/io/github/libxposed/api/XposedInterface.java+5-15
- api/src/main/java/io/github/libxposed/api/XposedInterfaceWrapper.java+9-2
- api/src/main/java/io/github/libxposed/api/XposedModuleInterface.java+37-18
- api/src/main/java/io/github/libxposed/api/package-info.java+12-24
Lines changed: 73 additions & 15 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
12 | 15 | | |
13 | 16 | | |
14 | 17 | | |
15 | 18 | | |
16 | 19 | | |
17 | 20 | | |
| 21 | + | |
18 | 22 | | |
19 | 23 | | |
20 | 24 | | |
| |||
118 | 122 | | |
119 | 123 | | |
120 | 124 | | |
| 125 | + | |
| 126 | + | |
121 | 127 | | |
122 | 128 | | |
123 | 129 | | |
124 | 130 | | |
125 | 131 | | |
126 | 132 | | |
127 | | - | |
128 | | - | |
| 133 | + | |
129 | 134 | | |
130 | 135 | | |
131 | 136 | | |
| |||
134 | 139 | | |
135 | 140 | | |
136 | 141 | | |
137 | | - | |
138 | | - | |
139 | | - | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
140 | 147 | | |
141 | | - | |
142 | | - | |
| 148 | + | |
| 149 | + | |
143 | 150 | | |
144 | | - | |
| 151 | + | |
| 152 | + | |
145 | 153 | | |
146 | 154 | | |
147 | | - | |
| 155 | + | |
148 | 156 | | |
| 157 | + | |
| 158 | + | |
149 | 159 | | |
150 | | - | |
151 | | - | |
152 | 160 | | |
153 | 161 | | |
154 | 162 | | |
| |||
163 | 171 | | |
164 | 172 | | |
165 | 173 | | |
166 | | - | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
167 | 179 | | |
168 | 180 | | |
169 | 181 | | |
| |||
176 | 188 | | |
177 | 189 | | |
178 | 190 | | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
179 | 196 | | |
180 | 197 | | |
181 | | - | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
182 | 201 | | |
183 | | - | |
184 | | - | |
185 | 202 | | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
186 | 209 | | |
187 | 210 | | |
188 | 211 | | |
| |||
225 | 248 | | |
226 | 249 | | |
227 | 250 | | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
228 | 286 | | |
Lines changed: 14 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
130 | 130 | | |
131 | 131 | | |
132 | 132 | | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
133 | 143 | | |
134 | | - | |
| 144 | + | |
135 | 145 | | |
136 | 146 | | |
137 | 147 | | |
| |||
188 | 198 | | |
189 | 199 | | |
190 | 200 | | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
191 | 204 | | |
192 | 205 | | |
193 | 206 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
| 10 | + | |
| 11 | + | |
10 | 12 | | |
11 | 13 | | |
0 commit comments