Advertisement
Guest User

root.smali

a guest
Aug 1st, 2016
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.11 KB | None | 0 0
  1. .class public Lcom/aspiro/tv/MoonWalker_library/basic/root_check/Root;
  2. .super Ljava/lang/Object;
  3. .source "Root.java"
  4.  
  5.  
  6. # static fields
  7. .field private static LOG_TAG:Ljava/lang/String;
  8.  
  9.  
  10. # direct methods
  11. .method static constructor <clinit>()V
  12. .locals 1
  13.  
  14. .prologue
  15. .line 7
  16. const-class v0, Lcom/aspiro/tv/MoonWalker_library/basic/root_check/Root;
  17.  
  18. invoke-virtual {v0}, Ljava/lang/Class;->getName()Ljava/lang/String;
  19.  
  20. move-result-object v0
  21.  
  22. sput-object v0, Lcom/aspiro/tv/MoonWalker_library/basic/root_check/Root;->LOG_TAG:Ljava/lang/String;
  23.  
  24. return-void
  25. .end method
  26.  
  27. .method public constructor <init>()V
  28. .locals 0
  29.  
  30. .prologue
  31. .line 5
  32. invoke-direct {p0}, Ljava/lang/Object;-><init>()V
  33.  
  34. return-void
  35. .end method
  36.  
  37. .method private checkRootMethod1()Z
  38. .locals 2
  39.  
  40. .prologue
  41. .line 43
  42. sget-object v0, Landroid/os/Build;->TAGS:Ljava/lang/String;
  43.  
  44. .line 45
  45. .local v0, "buildTags":Ljava/lang/String;
  46. if-eqz v0, :cond_0
  47.  
  48. const-string v1, "test-keys"
  49.  
  50. invoke-virtual {v0, v1}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
  51.  
  52. move-result v1
  53.  
  54. if-eqz v1, :cond_0
  55.  
  56. .line 46
  57. const/4 v1, 0x1
  58.  
  59. .line 48
  60. :goto_0
  61. return v1
  62.  
  63. :cond_0
  64. const/4 v1, 0x0
  65.  
  66. goto :goto_0
  67. .end method
  68.  
  69. .method private checkRootMethod2()Z
  70. .locals 2
  71.  
  72. .prologue
  73. .line 53
  74. :try_start_0
  75. new-instance v0, Ljava/io/File;
  76.  
  77. const-string v1, "/system/app/Superuser.apk"
  78.  
  79. invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
  80.  
  81. .line 54
  82. .local v0, "file":Ljava/io/File;
  83. invoke-virtual {v0}, Ljava/io/File;->exists()Z
  84. :try_end_0
  85. .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
  86.  
  87. move-result v1
  88.  
  89. if-eqz v1, :cond_0
  90.  
  91. .line 55
  92. const/4 v1, 0x1
  93.  
  94. .line 60
  95. .end local v0 # "file":Ljava/io/File;
  96. :goto_0
  97. return v1
  98.  
  99. .line 57
  100. :catch_0
  101. move-exception v1
  102.  
  103. .line 60
  104. :cond_0
  105. const/4 v1, 0x0
  106.  
  107. goto :goto_0
  108. .end method
  109.  
  110. .method private checkRootMethod3()Z
  111. .locals 2
  112.  
  113. .prologue
  114. .line 77
  115. :try_start_0
  116. new-instance v0, Ljava/io/File;
  117.  
  118. const-string v1, "/system/app/Cydia.apk"
  119.  
  120. invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
  121.  
  122. .line 78
  123. .local v0, "file":Ljava/io/File;
  124. invoke-virtual {v0}, Ljava/io/File;->exists()Z
  125. :try_end_0
  126. .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
  127.  
  128. move-result v1
  129.  
  130. if-eqz v1, :cond_0
  131.  
  132. .line 79
  133. const/4 v1, 0x1
  134.  
  135. .line 84
  136. .end local v0 # "file":Ljava/io/File;
  137. :goto_0
  138. return v1
  139.  
  140. .line 81
  141. :catch_0
  142. move-exception v1
  143.  
  144. .line 84
  145. :cond_0
  146. const/4 v1, 0x0
  147.  
  148. goto :goto_0
  149. .end method
  150.  
  151. .method private static checkRootMethod4()Z
  152. .locals 7
  153.  
  154. .prologue
  155. const/4 v2, 0x1
  156.  
  157. const/4 v3, 0x0
  158.  
  159. .line 88
  160. const/16 v4, 0x8
  161.  
  162. new-array v1, v4, [Ljava/lang/String;
  163.  
  164. const-string v4, "/sbin/su"
  165.  
  166. aput-object v4, v1, v3
  167.  
  168. const-string v4, "/system/bin/su"
  169.  
  170. aput-object v4, v1, v2
  171.  
  172. const/4 v4, 0x2
  173.  
  174. const-string v5, "/system/xbin/su"
  175.  
  176. aput-object v5, v1, v4
  177.  
  178. const/4 v4, 0x3
  179.  
  180. const-string v5, "/data/local/xbin/su"
  181.  
  182. aput-object v5, v1, v4
  183.  
  184. const/4 v4, 0x4
  185.  
  186. const-string v5, "/data/local/bin/su"
  187.  
  188. aput-object v5, v1, v4
  189.  
  190. const/4 v4, 0x5
  191.  
  192. const-string v5, "/system/sd/xbin/su"
  193.  
  194. aput-object v5, v1, v4
  195.  
  196. const/4 v4, 0x6
  197.  
  198. const-string v5, "/system/bin/failsafe/su"
  199.  
  200. aput-object v5, v1, v4
  201.  
  202. const/4 v4, 0x7
  203.  
  204. const-string v5, "/data/local/su"
  205.  
  206. aput-object v5, v1, v4
  207.  
  208. .line 93
  209. .local v1, "paths":[Ljava/lang/String;
  210. array-length v5, v1
  211.  
  212. move v4, v3
  213.  
  214. :goto_0
  215. if-ge v4, v5, :cond_1
  216.  
  217. aget-object v0, v1, v4
  218.  
  219. .line 94
  220. .local v0, "path":Ljava/lang/String;
  221. new-instance v6, Ljava/io/File;
  222.  
  223. invoke-direct {v6, v0}, Ljava/io/File;-><init>(Ljava/lang/String;)V
  224.  
  225. invoke-virtual {v6}, Ljava/io/File;->exists()Z
  226.  
  227. move-result v6
  228.  
  229. if-eqz v6, :cond_0
  230.  
  231. .line 98
  232. .end local v0 # "path":Ljava/lang/String;
  233. :goto_1
  234. return v2
  235.  
  236. .line 93
  237. .restart local v0 # "path":Ljava/lang/String;
  238. :cond_0
  239. add-int/lit8 v4, v4, 0x1
  240.  
  241. goto :goto_0
  242.  
  243. .end local v0 # "path":Ljava/lang/String;
  244. :cond_1
  245. move v2, v3
  246.  
  247. .line 98
  248. goto :goto_1
  249. .end method
  250.  
  251. .method private checkRootMethod5()Z
  252. .locals 2
  253.  
  254. .prologue
  255. .line 65
  256. :try_start_0
  257. new-instance v0, Ljava/io/File;
  258.  
  259. const-string v1, "/system/app/SuperSU.apk"
  260.  
  261. invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
  262.  
  263. .line 66
  264. .local v0, "file":Ljava/io/File;
  265. invoke-virtual {v0}, Ljava/io/File;->exists()Z
  266. :try_end_0
  267. .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
  268.  
  269. move-result v1
  270.  
  271. if-eqz v1, :cond_0
  272.  
  273. .line 67
  274. const/4 v1, 0x1
  275.  
  276. .line 72
  277. .end local v0 # "file":Ljava/io/File;
  278. :goto_0
  279. return v1
  280.  
  281. .line 69
  282. :catch_0
  283. move-exception v1
  284.  
  285. .line 72
  286. :cond_0
  287. const/4 v1, 0x0
  288.  
  289. goto :goto_0
  290. .end method
  291.  
  292. .method private checkRootMethod6()Z
  293. .locals 2
  294.  
  295. .prologue
  296. .line 104
  297. :try_start_0
  298. new-instance v0, Ljava/io/File;
  299.  
  300. const-string v1, "/system/app/Superuser/Superuser.apk"
  301.  
  302. invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
  303.  
  304. .line 105
  305. .local v0, "file":Ljava/io/File;
  306. invoke-virtual {v0}, Ljava/io/File;->exists()Z
  307. :try_end_0
  308. .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
  309.  
  310. move-result v1
  311.  
  312. if-eqz v1, :cond_0
  313.  
  314. .line 106
  315. const/4 v1, 0x1
  316.  
  317. .line 111
  318. .end local v0 # "file":Ljava/io/File;
  319. :goto_0
  320. return v1
  321.  
  322. .line 108
  323. :catch_0
  324. move-exception v1
  325.  
  326. .line 111
  327. :cond_0
  328. const/4 v1, 0x0
  329.  
  330. goto :goto_0
  331. .end method
  332.  
  333. .method private checkRootMethod7()Z
  334. .locals 2
  335.  
  336. .prologue
  337. .line 116
  338. :try_start_0
  339. new-instance v0, Ljava/io/File;
  340.  
  341. const-string v1, "/system/app/Cydia/Cydia.apk"
  342.  
  343. invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
  344.  
  345. .line 117
  346. .local v0, "file":Ljava/io/File;
  347. invoke-virtual {v0}, Ljava/io/File;->exists()Z
  348. :try_end_0
  349. .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
  350.  
  351. move-result v1
  352.  
  353. if-eqz v1, :cond_0
  354.  
  355. .line 118
  356. const/4 v1, 0x1
  357.  
  358. .line 123
  359. .end local v0 # "file":Ljava/io/File;
  360. :goto_0
  361. return v1
  362.  
  363. .line 120
  364. :catch_0
  365. move-exception v1
  366.  
  367. .line 123
  368. :cond_0
  369. const/4 v1, 0x0
  370.  
  371. goto :goto_0
  372. .end method
  373.  
  374. .method private checkRootMethod8()Z
  375. .locals 2
  376.  
  377. .prologue
  378. .line 128
  379. :try_start_0
  380. new-instance v0, Ljava/io/File;
  381.  
  382. const-string v1, "/system/app/SuperSU/SuperSU.apk"
  383.  
  384. invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
  385.  
  386. .line 129
  387. .local v0, "file":Ljava/io/File;
  388. invoke-virtual {v0}, Ljava/io/File;->exists()Z
  389. :try_end_0
  390. .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
  391.  
  392. move-result v1
  393.  
  394. if-eqz v1, :cond_0
  395.  
  396. .line 130
  397. const/4 v1, 0x1
  398.  
  399. .line 135
  400. .end local v0 # "file":Ljava/io/File;
  401. :goto_0
  402. return v1
  403.  
  404. .line 132
  405. :catch_0
  406. move-exception v1
  407.  
  408. .line 135
  409. :cond_0
  410. const/4 v1, 0x0
  411.  
  412. goto :goto_0
  413. .end method
  414.  
  415.  
  416. # virtual methods
  417. .method public isDeviceRooted()Z
  418. .locals 2
  419.  
  420. .prologue
  421. const/4 v0, 0x1
  422.  
  423. .line 10
  424. invoke-direct {p0}, Lcom/aspiro/tv/MoonWalker_library/basic/root_check/Root;->checkRootMethod1()Z
  425.  
  426. move-result v1
  427.  
  428. if-eqz v1, :cond_1
  429.  
  430. .line 39
  431. :cond_0
  432. :goto_0
  433. return v0
  434.  
  435. .line 13
  436. :cond_1
  437. invoke-direct {p0}, Lcom/aspiro/tv/MoonWalker_library/basic/root_check/Root;->checkRootMethod2()Z
  438.  
  439. move-result v1
  440.  
  441. if-nez v1, :cond_0
  442.  
  443. .line 16
  444. invoke-direct {p0}, Lcom/aspiro/tv/MoonWalker_library/basic/root_check/Root;->checkRootMethod3()Z
  445.  
  446. move-result v1
  447.  
  448. if-nez v1, :cond_0
  449.  
  450. .line 19
  451. invoke-static {}, Lcom/aspiro/tv/MoonWalker_library/basic/root_check/Root;->checkRootMethod4()Z
  452.  
  453. move-result v1
  454.  
  455. if-nez v1, :cond_0
  456.  
  457. .line 22
  458. invoke-direct {p0}, Lcom/aspiro/tv/MoonWalker_library/basic/root_check/Root;->checkRootMethod5()Z
  459.  
  460. move-result v1
  461.  
  462. if-nez v1, :cond_0
  463.  
  464. .line 25
  465. invoke-direct {p0}, Lcom/aspiro/tv/MoonWalker_library/basic/root_check/Root;->checkRootMethod6()Z
  466.  
  467. move-result v1
  468.  
  469. if-nez v1, :cond_0
  470.  
  471. .line 28
  472. invoke-direct {p0}, Lcom/aspiro/tv/MoonWalker_library/basic/root_check/Root;->checkRootMethod7()Z
  473.  
  474. move-result v1
  475.  
  476. if-nez v1, :cond_0
  477.  
  478. .line 31
  479. invoke-direct {p0}, Lcom/aspiro/tv/MoonWalker_library/basic/root_check/Root;->checkRootMethod8()Z
  480.  
  481. move-result v1
  482.  
  483. if-nez v1, :cond_0
  484.  
  485. .line 39
  486. const/4 v0, 0x0
  487.  
  488. goto :goto_0
  489. .end method
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement