Advertisement
0xroot

Untitled

Jul 19th, 2011
219
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.56 KB | None | 0 0
  1. .method public declared-synchronized checkAccess(Lcom/android/vending/licensing/LicenseCheckerCallback;)V
  2. .registers 11
  3. .parameter "callback"
  4.  
  5. .prologue
  6. .line 133
  7. monitor-enter p0
  8.  
  9. :try_start_1
  10. iget-object v1, p0, Lcom/android/vending/licensing/LicenseChecker;->mPolicy:Lcom/android/vending/licensing/Policy;
  11.  
  12. invoke-interface {v1}, Lcom/android/vending/licensing/Policy;->allowAccess()Z
  13.  
  14. move-result v1
  15.  
  16. if-eqz v1, :cond_15
  17.  
  18. .line 134
  19. const-string v1, "LicenseChecker"
  20.  
  21. const-string v2, "Using cached license response"
  22.  
  23. invoke-static {v1, v2}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
  24.  
  25. .line 135
  26. invoke-interface {p1}, Lcom/android/vending/licensing/LicenseCheckerCallback;->allow()V
  27. :try_end_13
  28. .catchall {:try_start_1 .. :try_end_13} :catchall_57
  29.  
  30. .line 162
  31. :goto_13
  32. monitor-exit p0
  33.  
  34. return-void
  35.  
  36. .line 137
  37. :cond_15
  38. :try_start_15
  39. new-instance v0, Lcom/android/vending/licensing/LicenseValidator;
  40.  
  41. iget-object v1, p0, Lcom/android/vending/licensing/LicenseChecker;->mPolicy:Lcom/android/vending/licensing/Policy;
  42.  
  43. new-instance v2, Lcom/android/vending/licensing/NullDeviceLimiter;
  44.  
  45. invoke-direct {v2}, Lcom/android/vending/licensing/NullDeviceLimiter;-><init>()V
  46.  
  47. invoke-direct {p0}, Lcom/android/vending/licensing/LicenseChecker;->generateNonce()I
  48.  
  49. move-result v4
  50.  
  51. iget-object v5, p0, Lcom/android/vending/licensing/LicenseChecker;->mPackageName:Ljava/lang/String;
  52.  
  53. iget-object v6, p0, Lcom/android/vending/licensing/LicenseChecker;->mVersionCode:Ljava/lang/String;
  54.  
  55. move-object v3, p1
  56.  
  57. invoke-direct/range {v0 .. v6}, Lcom/android/vending/licensing/LicenseValidator;-><init>(Lcom/android/vending/licensing/Policy;Lcom/android/vending/licensing/DeviceLimiter;Lcom/android/vending/licensing/LicenseCheckerCallback;ILjava/lang/String;Ljava/lang/String;)V
  58.  
  59. .line 140
  60. .local v0, validator:Lcom/android/vending/licensing/LicenseValidator;
  61. iget-object v1, p0, Lcom/android/vending/licensing/LicenseChecker;->mService:Lcom/android/vending/licensing/ILicensingService;
  62.  
  63. if-nez v1, :cond_65
  64.  
  65. .line 141
  66. const-string v1, "LicenseChecker"
  67.  
  68. const-string v2, "Binding to licensing service."
  69.  
  70. invoke-static {v1, v2}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
  71. :try_end_35
  72. .catchall {:try_start_15 .. :try_end_35} :catchall_57
  73.  
  74. .line 143
  75. :try_start_35
  76. iget-object v1, p0, Lcom/android/vending/licensing/LicenseChecker;->mContext:Landroid/content/Context;
  77.  
  78. new-instance v2, Landroid/content/Intent;
  79.  
  80. const-class v3, Lcom/android/vending/licensing/ILicensingService;
  81.  
  82. invoke-virtual {v3}, Ljava/lang/Class;->getName()Ljava/lang/String;
  83.  
  84. move-result-object v3
  85.  
  86. invoke-direct {v2, v3}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
  87.  
  88. const/4 v3, 0x1
  89.  
  90. invoke-virtual {v1, v2, p0, v3}, Landroid/content/Context;->bindService(Landroid/content/Intent;Landroid/content/ServiceConnection;I)Z
  91.  
  92. move-result v7
  93.  
  94. .line 148
  95. .local v7, bindResult:Z
  96. if-eqz v7, :cond_5a
  97.  
  98. .line 149
  99. iget-object v1, p0, Lcom/android/vending/licensing/LicenseChecker;->mPendingChecks:Ljava/util/Queue;
  100.  
  101. invoke-interface {v1, v0}, Ljava/util/Queue;->offer(Ljava/lang/Object;)Z
  102. :try_end_4e
  103. .catchall {:try_start_35 .. :try_end_4e} :catchall_57
  104. .catch Ljava/lang/SecurityException; {:try_start_35 .. :try_end_4e} :catch_4f
  105.  
  106. goto :goto_13
  107.  
  108. .line 154
  109. .end local v7 #bindResult:Z
  110. :catch_4f
  111. move-exception v1
  112.  
  113. move-object v8, v1
  114.  
  115. .line 155
  116. .local v8, e:Ljava/lang/SecurityException;
  117. :try_start_51
  118. sget-object v1, Lcom/android/vending/licensing/LicenseCheckerCallback$ApplicationErrorCode;->MISSING_PERMISSION:Lcom/android/vending/licensing/LicenseCheckerCallback$ApplicationErrorCode;
  119.  
  120. invoke-interface {p1, v1}, Lcom/android/vending/licensing/LicenseCheckerCallback;->applicationError(Lcom/android/vending/licensing/LicenseCheckerCallback$ApplicationErrorCode;)V
  121. :try_end_56
  122. .catchall {:try_start_51 .. :try_end_56} :catchall_57
  123.  
  124. goto :goto_13
  125.  
  126. .line 133
  127. .end local v0 #validator:Lcom/android/vending/licensing/LicenseValidator;
  128. .end local v8 #e:Ljava/lang/SecurityException;
  129. :catchall_57
  130. move-exception v1
  131.  
  132. monitor-exit p0
  133.  
  134. throw v1
  135.  
  136. .line 151
  137. .restart local v0 #validator:Lcom/android/vending/licensing/LicenseValidator;
  138. .restart local v7 #bindResult:Z
  139. :cond_5a
  140. :try_start_5a
  141. const-string v1, "LicenseChecker"
  142.  
  143. const-string v2, "Could not bind to service."
  144.  
  145. invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
  146.  
  147. .line 152
  148. invoke-direct {p0, v0}, Lcom/android/vending/licensing/LicenseChecker;->handleServiceConnectionError(Lcom/android/vending/licensing/LicenseValidator;)V
  149. :try_end_64
  150. .catchall {:try_start_5a .. :try_end_64} :catchall_57
  151. .catch Ljava/lang/SecurityException; {:try_start_5a .. :try_end_64} :catch_4f
  152.  
  153. goto :goto_13
  154.  
  155. .line 158
  156. .end local v7 #bindResult:Z
  157. :cond_65
  158. :try_start_65
  159. iget-object v1, p0, Lcom/android/vending/licensing/LicenseChecker;->mPendingChecks:Ljava/util/Queue;
  160.  
  161. invoke-interface {v1, v0}, Ljava/util/Queue;->offer(Ljava/lang/Object;)Z
  162.  
  163. .line 159
  164. invoke-direct {p0}, Lcom/android/vending/licensing/LicenseChecker;->runChecks()V
  165. :try_end_6d
  166. .catchall {:try_start_65 .. :try_end_6d} :catchall_57
  167.  
  168. goto :goto_13
  169. .end method
  170.  
  171. ----------------------------------------
  172.  
  173. .method private declared-synchronized handleServiceConnectionError(Lcom/android/vending/licensing/LicenseValidator;)V
  174. .registers 5
  175. .parameter "validator"
  176.  
  177. .prologue
  178. .line 249
  179. monitor-enter p0
  180.  
  181. :try_start_1
  182. iget-object v0, p0, Lcom/android/vending/licensing/LicenseChecker;->mPolicy:Lcom/android/vending/licensing/Policy;
  183.  
  184. sget-object v1, Lcom/android/vending/licensing/Policy$LicenseResponse;->RETRY:Lcom/android/vending/licensing/Policy$LicenseResponse;
  185.  
  186. const/4 v2, 0x0
  187.  
  188. invoke-interface {v0, v1, v2}, Lcom/android/vending/licensing/Policy;->processServerResponse(Lcom/android/vending/licensing/Policy$LicenseResponse;Lcom/android/vending/licensing/ResponseData;)V
  189.  
  190. .line 251
  191. iget-object v0, p0, Lcom/android/vending/licensing/LicenseChecker;->mPolicy:Lcom/android/vending/licensing/Policy;
  192.  
  193. invoke-interface {v0}, Lcom/android/vending/licensing/Policy;->allowAccess()Z
  194.  
  195. move-result v0
  196.  
  197. if-eqz v0, :cond_1a
  198.  
  199. .line 252
  200. invoke-virtual {p1}, Lcom/android/vending/licensing/LicenseValidator;->getCallback()Lcom/android/vending/licensing/LicenseCheckerCallback;
  201.  
  202. move-result-object v0
  203.  
  204. invoke-interface {v0}, Lcom/android/vending/licensing/LicenseCheckerCallback;->allow()V
  205. :try_end_18
  206. .catchall {:try_start_1 .. :try_end_18} :catchall_22
  207.  
  208. .line 256
  209. :goto_18
  210. monitor-exit p0
  211.  
  212. return-void
  213.  
  214. .line 254
  215. :cond_1a
  216. :try_start_1a
  217. invoke-virtual {p1}, Lcom/android/vending/licensing/LicenseValidator;->getCallback()Lcom/android/vending/licensing/LicenseCheckerCallback;
  218.  
  219. move-result-object v0
  220.  
  221. invoke-interface {v0}, Lcom/android/vending/licensing/LicenseCheckerCallback;->dontAllow()V
  222. :try_end_21
  223. .catchall {:try_start_1a .. :try_end_21} :catchall_22
  224.  
  225. goto :goto_18
  226.  
  227. .line 249
  228. :catchall_22
  229. move-exception v0
  230.  
  231. monitor-exit p0
  232.  
  233. throw v0
  234. .end method
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement