Skip to content

Commit 984086a

Browse files
author
mochangming
committed
Upload updates
1 parent 320f54c commit 984086a

3 files changed

Lines changed: 327 additions & 0 deletions

File tree

services.jar.out/smali/com/android/server/am/ActivityManagerService.smali

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14831,6 +14831,20 @@
1483114831

1483214832
invoke-direct {v0, v1, v2, v4}, Lcom/android/server/am/ActivityManagerService;->removeUriPermissionsForPackageLocked(Ljava/lang/String;IZ)V
1483314833

14834+
move-object/from16 v0, p0
14835+
14836+
move-object/from16 v1, p1
14837+
14838+
move/from16 v2, p8
14839+
14840+
move/from16 v3, p5
14841+
14842+
move/from16 v4, v17
14843+
14844+
invoke-direct {v0, v1, v2, v3, v4}, Lcom/android/server/am/ActivityManagerService;->forceStopPackageLocked_Hook1(Ljava/lang/String;IZZ)Z
14845+
14846+
move-result v17
14847+
1483414848
if-eqz p1, :cond_13
1483514849

1483614850
if-eqz p7, :cond_1b
@@ -69369,3 +69383,44 @@
6936969383

6937069384
throw v1
6937169385
.end method
69386+
69387+
.method private forceStopPackageLocked_Hook1(Ljava/lang/String;IZZ)Z
69388+
.locals 3
69389+
.param p1, "packageName" # Ljava/lang/String;
69390+
.param p2, "userId" # I
69391+
.param p3, "doit" # Z
69392+
.param p4, "didSomething" # Z
69393+
69394+
.prologue
69395+
if-eqz p3, :cond_0
69396+
69397+
iget-object v1, p0, Lcom/android/server/am/ActivityManagerService;->mBroadcastQueues:[Lcom/android/server/am/BroadcastQueue;
69398+
69399+
array-length v1, v1
69400+
69401+
add-int/lit8 v0, v1, -0x1
69402+
69403+
.local v0, "i":I
69404+
:goto_0
69405+
if-ltz v0, :cond_0
69406+
69407+
iget-object v1, p0, Lcom/android/server/am/ActivityManagerService;->mBroadcastQueues:[Lcom/android/server/am/BroadcastQueue;
69408+
69409+
aget-object v1, v1, v0
69410+
69411+
const/4 v2, 0x0
69412+
69413+
invoke-virtual {v1, p1, v2, p2, p3}, Lcom/android/server/am/BroadcastQueue;->cleanupDisabledPackageReceiversLocked(Ljava/lang/String;Ljava/util/Set;IZ)Z
69414+
69415+
move-result v1
69416+
69417+
or-int/2addr p4, v1
69418+
69419+
add-int/lit8 v0, v0, -0x1
69420+
69421+
goto :goto_0
69422+
69423+
.end local v0 # "i":I
69424+
:cond_0
69425+
return p4
69426+
.end method

services.jar.out/smali/com/android/server/am/BroadcastQueue.smali

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1844,6 +1844,114 @@
18441844
goto/16 :goto_0
18451845
.end method
18461846

1847+
.method cleanupDisabledPackageReceiversLocked(Ljava/lang/String;Ljava/util/Set;IZ)Z
1848+
.locals 4
1849+
.param p1, "packageName" # Ljava/lang/String;
1850+
.param p3, "userId" # I
1851+
.param p4, "doit" # Z
1852+
.annotation system Ldalvik/annotation/Signature;
1853+
value = {
1854+
"(",
1855+
"Ljava/lang/String;",
1856+
"Ljava/util/Set",
1857+
"<",
1858+
"Ljava/lang/String;",
1859+
">;IZ)Z"
1860+
}
1861+
.end annotation
1862+
1863+
.prologue
1864+
.local p2, "filterByClasses":Ljava/util/Set;, "Ljava/util/Set<Ljava/lang/String;>;"
1865+
const/4 v3, 0x1
1866+
1867+
const/4 v0, 0x0
1868+
1869+
.local v0, "didSomething":Z
1870+
iget-object v2, p0, Lcom/android/server/am/BroadcastQueue;->mParallelBroadcasts:Ljava/util/ArrayList;
1871+
1872+
invoke-virtual {v2}, Ljava/util/ArrayList;->size()I
1873+
1874+
move-result v2
1875+
1876+
add-int/lit8 v1, v2, -0x1
1877+
1878+
.local v1, "i":I
1879+
:goto_0
1880+
if-ltz v1, :cond_1
1881+
1882+
iget-object v2, p0, Lcom/android/server/am/BroadcastQueue;->mParallelBroadcasts:Ljava/util/ArrayList;
1883+
1884+
invoke-virtual {v2, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
1885+
1886+
move-result-object v2
1887+
1888+
check-cast v2, Lcom/android/server/am/BroadcastRecord;
1889+
1890+
invoke-virtual {v2, p1, p2, p3, p4}, Lcom/android/server/am/BroadcastRecord;->cleanupDisabledPackageReceiversLocked(Ljava/lang/String;Ljava/util/Set;IZ)Z
1891+
1892+
move-result v2
1893+
1894+
or-int/2addr v0, v2
1895+
1896+
if-nez p4, :cond_0
1897+
1898+
if-eqz v0, :cond_0
1899+
1900+
move v2, v3
1901+
1902+
:goto_1
1903+
return v2
1904+
1905+
:cond_0
1906+
add-int/lit8 v1, v1, -0x1
1907+
1908+
goto :goto_0
1909+
1910+
:cond_1
1911+
iget-object v2, p0, Lcom/android/server/am/BroadcastQueue;->mOrderedBroadcasts:Ljava/util/ArrayList;
1912+
1913+
invoke-virtual {v2}, Ljava/util/ArrayList;->size()I
1914+
1915+
move-result v2
1916+
1917+
add-int/lit8 v1, v2, -0x1
1918+
1919+
:goto_2
1920+
if-ltz v1, :cond_3
1921+
1922+
iget-object v2, p0, Lcom/android/server/am/BroadcastQueue;->mOrderedBroadcasts:Ljava/util/ArrayList;
1923+
1924+
invoke-virtual {v2, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
1925+
1926+
move-result-object v2
1927+
1928+
check-cast v2, Lcom/android/server/am/BroadcastRecord;
1929+
1930+
invoke-virtual {v2, p1, p2, p3, p4}, Lcom/android/server/am/BroadcastRecord;->cleanupDisabledPackageReceiversLocked(Ljava/lang/String;Ljava/util/Set;IZ)Z
1931+
1932+
move-result v2
1933+
1934+
or-int/2addr v0, v2
1935+
1936+
if-nez p4, :cond_2
1937+
1938+
if-eqz v0, :cond_2
1939+
1940+
move v2, v3
1941+
1942+
goto :goto_1
1943+
1944+
:cond_2
1945+
add-int/lit8 v1, v1, -0x1
1946+
1947+
goto :goto_2
1948+
1949+
:cond_3
1950+
move v2, v0
1951+
1952+
goto :goto_1
1953+
.end method
1954+
18471955
.method final dumpLocked(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;IZLjava/lang/String;Z)Z
18481956
.locals 12
18491957
.param p1, "fd" # Ljava/io/FileDescriptor;

services.jar.out/smali/com/android/server/am/BroadcastRecord.smali

Lines changed: 164 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,170 @@
171171

172172

173173
# virtual methods
174+
.method cleanupDisabledPackageReceiversLocked(Ljava/lang/String;Ljava/util/Set;IZ)Z
175+
.locals 8
176+
.param p1, "packageName" # Ljava/lang/String;
177+
.param p3, "userId" # I
178+
.param p4, "doit" # Z
179+
.annotation system Ldalvik/annotation/Signature;
180+
value = {
181+
"(",
182+
"Ljava/lang/String;",
183+
"Ljava/util/Set",
184+
"<",
185+
"Ljava/lang/String;",
186+
">;IZ)Z"
187+
}
188+
.end annotation
189+
190+
.prologue
191+
.local p2, "filterByClasses":Ljava/util/Set;, "Ljava/util/Set<Ljava/lang/String;>;"
192+
const/4 v5, 0x1
193+
194+
const/4 v6, 0x0
195+
196+
const/4 v7, -0x1
197+
198+
if-eq p3, v7, :cond_0
199+
200+
iget v7, p0, Lcom/android/server/am/BroadcastRecord;->userId:I
201+
202+
if-ne v7, p3, :cond_1
203+
204+
:cond_0
205+
iget-object v7, p0, Lcom/android/server/am/BroadcastRecord;->receivers:Ljava/util/List;
206+
207+
if-nez v7, :cond_2
208+
209+
:cond_1
210+
move v0, v6
211+
212+
:goto_0
213+
return v0
214+
215+
:cond_2
216+
const/4 v0, 0x0
217+
218+
.local v0, "didSomething":Z
219+
iget-object v7, p0, Lcom/android/server/am/BroadcastRecord;->receivers:Ljava/util/List;
220+
221+
invoke-interface {v7}, Ljava/util/List;->size()I
222+
223+
move-result v7
224+
225+
add-int/lit8 v1, v7, -0x1
226+
227+
.local v1, "i":I
228+
:goto_1
229+
if-ltz v1, :cond_8
230+
231+
iget-object v7, p0, Lcom/android/server/am/BroadcastRecord;->receivers:Ljava/util/List;
232+
233+
invoke-interface {v7, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;
234+
235+
move-result-object v3
236+
237+
.local v3, "o":Ljava/lang/Object;
238+
instance-of v7, v3, Landroid/content/pm/ResolveInfo;
239+
240+
if-nez v7, :cond_4
241+
242+
.end local v3 # "o":Ljava/lang/Object;
243+
:cond_3
244+
:goto_2
245+
add-int/lit8 v1, v1, -0x1
246+
247+
goto :goto_1
248+
249+
.restart local v3 # "o":Ljava/lang/Object;
250+
:cond_4
251+
check-cast v3, Landroid/content/pm/ResolveInfo;
252+
253+
.end local v3 # "o":Ljava/lang/Object;
254+
iget-object v2, v3, Landroid/content/pm/ResolveInfo;->activityInfo:Landroid/content/pm/ActivityInfo;
255+
256+
.local v2, "info":Landroid/content/pm/ActivityInfo;
257+
if-eqz p1, :cond_5
258+
259+
iget-object v7, v2, Landroid/content/pm/ActivityInfo;->applicationInfo:Landroid/content/pm/ApplicationInfo;
260+
261+
iget-object v7, v7, Landroid/content/pm/ApplicationInfo;->packageName:Ljava/lang/String;
262+
263+
invoke-virtual {v7, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
264+
265+
move-result v7
266+
267+
if-eqz v7, :cond_6
268+
269+
if-eqz p2, :cond_5
270+
271+
iget-object v7, v2, Landroid/content/pm/ActivityInfo;->name:Ljava/lang/String;
272+
273+
invoke-interface {p2, v7}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z
274+
275+
move-result v7
276+
277+
if-eqz v7, :cond_6
278+
279+
:cond_5
280+
move v4, v5
281+
282+
.local v4, "sameComponent":Z
283+
:goto_3
284+
if-eqz v4, :cond_3
285+
286+
if-nez p4, :cond_7
287+
288+
move v0, v5
289+
290+
goto :goto_0
291+
292+
.end local v4 # "sameComponent":Z
293+
:cond_6
294+
move v4, v6
295+
296+
goto :goto_3
297+
298+
.restart local v4 # "sameComponent":Z
299+
:cond_7
300+
const/4 v0, 0x1
301+
302+
iget-object v7, p0, Lcom/android/server/am/BroadcastRecord;->receivers:Ljava/util/List;
303+
304+
invoke-interface {v7, v1}, Ljava/util/List;->remove(I)Ljava/lang/Object;
305+
306+
iget v7, p0, Lcom/android/server/am/BroadcastRecord;->nextReceiver:I
307+
308+
if-ge v1, v7, :cond_3
309+
310+
iget v7, p0, Lcom/android/server/am/BroadcastRecord;->nextReceiver:I
311+
312+
add-int/lit8 v7, v7, -0x1
313+
314+
iput v7, p0, Lcom/android/server/am/BroadcastRecord;->nextReceiver:I
315+
316+
goto :goto_2
317+
318+
.end local v2 # "info":Landroid/content/pm/ActivityInfo;
319+
.end local v4 # "sameComponent":Z
320+
:cond_8
321+
iget v5, p0, Lcom/android/server/am/BroadcastRecord;->nextReceiver:I
322+
323+
iget-object v6, p0, Lcom/android/server/am/BroadcastRecord;->receivers:Ljava/util/List;
324+
325+
invoke-interface {v6}, Ljava/util/List;->size()I
326+
327+
move-result v6
328+
329+
invoke-static {v5, v6}, Ljava/lang/Math;->min(II)I
330+
331+
move-result v5
332+
333+
iput v5, p0, Lcom/android/server/am/BroadcastRecord;->nextReceiver:I
334+
335+
goto :goto_0
336+
.end method
337+
174338
.method dump(Ljava/io/PrintWriter;Ljava/lang/String;)V
175339
.locals 13
176340
.param p1, "pw" # Ljava/io/PrintWriter;

0 commit comments

Comments
 (0)