yoyocx

Backup Restore Data

Jun 5th, 2015
832
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.58 KB | None | 0 0
  1. ========================== Backup Restore Data BBM ==========================
  2.  
  3. ** ATTENTION **
  4. - Tutorial Ini HANYA untuk yang sudah menggunakan fitur Change Text Color (Cari di pastebin saya)
  5.  
  6. =================================== STEP #1 ==================================
  7.  
  8. - Download bahan https://goo.gl/PM6pBr dan copy 3 file smali ke dalam folder ../smali/delta/*
  9. - Copy Kode dibawah ke dalam saffa.smali ( di dalam # direct methods) di dalam bahan ada saffa.smali sbg BAHAN COMPARE
  10. - Ada 4 method - DeleteDirectory, GetDataAppFromSd, SavaDataAppToSd dan copyDirectory
  11.  
  12. # DeleteDirectory
  13.  
  14. .method public static DeleteDirectory(Ljava/io/File;)V
  15. .locals 3
  16. .param p0, "file" # Ljava/io/File;
  17.  
  18. .prologue
  19. .line 422
  20. invoke-virtual {p0}, Ljava/io/File;->isDirectory()Z
  21.  
  22. move-result v2
  23.  
  24. if-eqz v2, :cond_0
  25.  
  26. .line 423
  27. invoke-virtual {p0}, Ljava/io/File;->listFiles()[Ljava/io/File;
  28.  
  29. move-result-object v0
  30.  
  31. .line 424
  32. .local v0, "arrfile":[Ljava/io/File;
  33. const/4 v1, 0x0
  34.  
  35. .local v1, "i":I
  36. :goto_0
  37. array-length v2, v0
  38.  
  39. if-lt v1, v2, :cond_1
  40.  
  41. .line 428
  42. .end local v0 # "arrfile":[Ljava/io/File;
  43. .end local v1 # "i":I
  44. :cond_0
  45. invoke-virtual {p0}, Ljava/io/File;->delete()Z
  46.  
  47. .line 429
  48. return-void
  49.  
  50. .line 425
  51. .restart local v0 # "arrfile":[Ljava/io/File;
  52. .restart local v1 # "i":I
  53. :cond_1
  54. aget-object v2, v0, v1
  55.  
  56. invoke-static {v2}, Lcom/bbm/dhian/textColor/Saffa;->DeleteDirectory(Ljava/io/File;)V
  57.  
  58. .line 424
  59. add-int/lit8 v1, v1, 0x1
  60.  
  61. goto :goto_0
  62. .end method
  63.  
  64.  
  65. # GetDataAppFromSd
  66.  
  67. .method public static GetDataAppFromSd(Landroid/content/Context;)V
  68. .locals 12
  69. .param p0, "context" # Landroid/content/Context;
  70.  
  71. .prologue
  72. const/4 v11, 0x0
  73.  
  74. .line 444
  75. invoke-static {}, Landroid/os/Environment;->getDataDirectory()Ljava/io/File;
  76.  
  77. move-result-object v1
  78.  
  79. .line 445
  80. .local v1, "file":Ljava/io/File;
  81. invoke-static {}, Landroid/os/Environment;->getExternalStorageDirectory()Ljava/io/File;
  82.  
  83. move-result-object v2
  84.  
  85. .line 446
  86. .local v2, "file2":Ljava/io/File;
  87. new-instance v7, Ljava/lang/StringBuffer;
  88.  
  89. invoke-direct {v7}, Ljava/lang/StringBuffer;-><init>()V
  90.  
  91. .line 447
  92. .local v7, "stringBuffer":Ljava/lang/StringBuffer;
  93. new-instance v8, Ljava/lang/StringBuffer;
  94.  
  95. invoke-direct {v8}, Ljava/lang/StringBuffer;-><init>()V
  96.  
  97. .line 448
  98. .local v8, "stringBuffer2":Ljava/lang/StringBuffer;
  99. const-string v9, "data/"
  100.  
  101. invoke-virtual {v8, v9}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
  102.  
  103. move-result-object v9
  104.  
  105. invoke-virtual {p0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
  106.  
  107. move-result-object v10
  108.  
  109. invoke-virtual {v9, v10}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
  110.  
  111. move-result-object v9
  112.  
  113. invoke-virtual {v9}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
  114.  
  115. move-result-object v9
  116.  
  117. invoke-virtual {v7, v9}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
  118.  
  119. move-result-object v9
  120.  
  121. const-string v10, "/files"
  122.  
  123. invoke-virtual {v9, v10}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
  124.  
  125. move-result-object v9
  126.  
  127. invoke-virtual {v9}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
  128.  
  129. move-result-object v6
  130.  
  131. .line 449
  132. .local v6, "string":Ljava/lang/String;
  133. new-instance v3, Ljava/io/File;
  134.  
  135. const-string v9, "DELTA/.Chats"
  136.  
  137. invoke-direct {v3, v2, v9}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
  138.  
  139. .line 450
  140. .local v3, "file3":Ljava/io/File;
  141. invoke-virtual {v3}, Ljava/io/File;->exists()Z
  142.  
  143. move-result v9
  144.  
  145. if-eqz v9, :cond_0
  146.  
  147. .line 451
  148. new-instance v4, Ljava/io/File;
  149.  
  150. const-string v9, "DELTA/.Chats"
  151.  
  152. invoke-direct {v4, v2, v9}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
  153.  
  154. .line 452
  155. .local v4, "file4":Ljava/io/File;
  156. new-instance v5, Ljava/io/File;
  157.  
  158. invoke-direct {v5, v1, v6}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
  159.  
  160. .line 453
  161. .local v5, "file5":Ljava/io/File;
  162. new-instance v0, Lcom/bbm/delta/AsyncTask;
  163.  
  164. invoke-direct {v0, p0, v11, v4, v5}, Lcom/bbm/delta/AsyncTask;-><init>(Landroid/content/Context;ZLjava/io/File;Ljava/io/File;)V
  165.  
  166. .line 454
  167. .local v0, "asyncTask":Lcom/bbm/delta/AsyncTask;
  168. new-array v9, v11, [Ljava/io/File;
  169.  
  170. invoke-virtual {v0, v9}, Lcom/bbm/delta/AsyncTask;->execute([Ljava/lang/Object;)Landroid/os/AsyncTask;
  171.  
  172. .line 458
  173. .end local v0 # "asyncTask":Lcom/bbm/delta/AsyncTask;
  174. .end local v4 # "file4":Ljava/io/File;
  175. .end local v5 # "file5":Ljava/io/File;
  176. :goto_0
  177. return-void
  178.  
  179. .line 457
  180. :cond_0
  181. const-string v9, "NoBackup"
  182.  
  183. invoke-static {v9, p0}, Lcom/bbm/dhian/textColor/Saffa;->getString(Ljava/lang/String;Landroid/content/Context;)Ljava/lang/String;
  184.  
  185. move-result-object v9
  186.  
  187. invoke-static {p0, v9, v11}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;
  188.  
  189. move-result-object v9
  190.  
  191. invoke-virtual {v9}, Landroid/widget/Toast;->show()V
  192.  
  193. goto :goto_0
  194. .end method
  195.  
  196.  
  197. # SavaDataAppToSd
  198.  
  199. .method public static SavaDataAppToSd(Landroid/content/Context;)V
  200. .locals 15
  201. .annotation system Ldalvik/annotation/Signature;
  202. value = {
  203. "(",
  204. "Landroid/content/Context;",
  205. ")V"
  206. }
  207. .end annotation
  208.  
  209. .prologue
  210. .line 99
  211. move-object v0, p0
  212.  
  213. invoke-static {}, Landroid/os/Environment;->getDataDirectory()Ljava/io/File;
  214.  
  215. move-result-object v8
  216.  
  217. move-object v1, v8
  218.  
  219. .line 100
  220. invoke-static {}, Landroid/os/Environment;->getExternalStorageDirectory()Ljava/io/File;
  221.  
  222. move-result-object v8
  223.  
  224. move-object v2, v8
  225.  
  226. .line 101
  227. new-instance v8, Ljava/lang/StringBuffer;
  228.  
  229. move-object v14, v8
  230.  
  231. move-object v8, v14
  232.  
  233. move-object v9, v14
  234.  
  235. invoke-direct {v9}, Ljava/lang/StringBuffer;-><init>()V
  236.  
  237. new-instance v9, Ljava/lang/StringBuffer;
  238.  
  239. move-object v14, v9
  240.  
  241. move-object v9, v14
  242.  
  243. move-object v10, v14
  244.  
  245. invoke-direct {v10}, Ljava/lang/StringBuffer;-><init>()V
  246.  
  247. const-string v10, "data/"
  248.  
  249. invoke-virtual {v9, v10}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
  250.  
  251. move-result-object v9
  252.  
  253. move-object v10, v0
  254.  
  255. invoke-virtual {v10}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
  256.  
  257. move-result-object v10
  258.  
  259. invoke-virtual {v9, v10}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
  260.  
  261. move-result-object v9
  262.  
  263. invoke-virtual {v9}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
  264.  
  265. move-result-object v9
  266.  
  267. invoke-virtual {v8, v9}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
  268.  
  269. move-result-object v8
  270.  
  271. const-string v9, "/files"
  272.  
  273. invoke-virtual {v8, v9}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
  274.  
  275. move-result-object v8
  276.  
  277. invoke-virtual {v8}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
  278.  
  279. move-result-object v8
  280.  
  281. move-object v3, v8
  282.  
  283. .line 102
  284. const-string v8, "DELTA/.Chats"
  285.  
  286. move-object v4, v8
  287.  
  288. .line 103
  289. new-instance v8, Ljava/io/File;
  290.  
  291. move-object v14, v8
  292.  
  293. move-object v8, v14
  294.  
  295. move-object v9, v14
  296.  
  297. move-object v10, v1
  298.  
  299. move-object v11, v3
  300.  
  301. invoke-direct {v9, v10, v11}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
  302.  
  303. move-object v5, v8
  304.  
  305. .line 104
  306. new-instance v8, Ljava/io/File;
  307.  
  308. move-object v14, v8
  309.  
  310. move-object v8, v14
  311.  
  312. move-object v9, v14
  313.  
  314. move-object v10, v2
  315.  
  316. move-object v11, v4
  317.  
  318. invoke-direct {v9, v10, v11}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
  319.  
  320. move-object v6, v8
  321.  
  322. .line 105
  323. new-instance v8, Lcom/bbm/delta/AsyncTask;
  324.  
  325. move-object v14, v8
  326.  
  327. move-object v8, v14
  328.  
  329. move-object v9, v14
  330.  
  331. move-object v10, v0
  332.  
  333. const/4 v11, 0x1
  334.  
  335. move-object v12, v5
  336.  
  337. move-object v13, v6
  338.  
  339. invoke-direct {v9, v10, v11, v12, v13}, Lcom/bbm/delta/AsyncTask;-><init>(Landroid/content/Context;ZLjava/io/File;Ljava/io/File;)V
  340.  
  341. const/4 v9, 0x0
  342.  
  343. new-array v9, v9, [Ljava/io/File;
  344.  
  345. invoke-virtual {v8, v9}, Lcom/bbm/delta/AsyncTask;->execute([Ljava/lang/Object;)Landroid/os/AsyncTask;
  346.  
  347. move-result-object v8
  348.  
  349. return-void
  350. .end method
  351.  
  352.  
  353. # copyDirectory
  354.  
  355. .method public static copyDirectory(Ljava/io/File;Ljava/io/File;)V
  356. .locals 16
  357. .annotation system Ldalvik/annotation/Signature;
  358. value = {
  359. "(",
  360. "Ljava/io/File;",
  361. "Ljava/io/File;",
  362. ")V^",
  363. "Ljava/io/IOException;"
  364. }
  365. .end annotation
  366.  
  367. .annotation system Ldalvik/annotation/Throws;
  368. value = {
  369. Ljava/io/IOException;
  370. }
  371. .end annotation
  372.  
  373. .prologue
  374. .line 895
  375. move-object/from16 v0, p0
  376.  
  377. move-object/from16 v1, p1
  378.  
  379. invoke-static {}, Landroid/os/Environment;->getExternalStorageDirectory()Ljava/io/File;
  380.  
  381. move-result-object v9
  382.  
  383. move-object v2, v9
  384.  
  385. .line 896
  386. new-instance v9, Ljava/io/File;
  387.  
  388. move-object v15, v9
  389.  
  390. move-object v9, v15
  391.  
  392. move-object v10, v15
  393.  
  394. new-instance v11, Ljava/lang/StringBuffer;
  395.  
  396. move-object v15, v11
  397.  
  398. move-object v11, v15
  399.  
  400. move-object v12, v15
  401.  
  402. invoke-direct {v12}, Ljava/lang/StringBuffer;-><init>()V
  403.  
  404. move-object v12, v2
  405.  
  406. invoke-virtual {v11, v12}, Ljava/lang/StringBuffer;->append(Ljava/lang/Object;)Ljava/lang/StringBuffer;
  407.  
  408. move-result-object v11
  409.  
  410. const-string v12, "/DELTA"
  411.  
  412. invoke-virtual {v11, v12}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
  413.  
  414. move-result-object v11
  415.  
  416. invoke-virtual {v11}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;
  417.  
  418. move-result-object v11
  419.  
  420. invoke-direct {v10, v11}, Ljava/io/File;-><init>(Ljava/lang/String;)V
  421.  
  422. move-object v3, v9
  423.  
  424. .line 897
  425. move-object v9, v3
  426.  
  427. invoke-virtual {v9}, Ljava/io/File;->mkdir()Z
  428.  
  429. move-result v9
  430.  
  431. .line 898
  432. move-object v9, v0
  433.  
  434. invoke-virtual {v9}, Ljava/io/File;->isDirectory()Z
  435.  
  436. move-result v9
  437.  
  438. if-eqz v9, :cond_2
  439.  
  440. .line 900
  441. move-object v9, v1
  442.  
  443. invoke-virtual {v9}, Ljava/io/File;->exists()Z
  444.  
  445. move-result v9
  446.  
  447. if-nez v9, :cond_0
  448.  
  449. .line 902
  450. move-object v9, v1
  451.  
  452. invoke-virtual {v9}, Ljava/io/File;->mkdir()Z
  453.  
  454. move-result v9
  455.  
  456. .line 909
  457. :goto_0
  458. move-object v9, v0
  459.  
  460. invoke-virtual {v9}, Ljava/io/File;->list()[Ljava/lang/String;
  461.  
  462. move-result-object v9
  463.  
  464. move-object v4, v9
  465.  
  466. .line 910
  467. const/4 v9, 0x0
  468.  
  469. move v5, v9
  470.  
  471. .line 911
  472. :goto_1
  473. move v9, v5
  474.  
  475. move-object v10, v4
  476.  
  477. array-length v10, v10
  478.  
  479. if-lt v9, v10, :cond_1
  480.  
  481. .line 929
  482. :goto_2
  483. return-void
  484.  
  485. .line 907
  486. :cond_0
  487. move-object v9, v1
  488.  
  489. invoke-virtual {v9}, Ljava/io/File;->mkdir()Z
  490.  
  491. move-result v9
  492.  
  493. goto :goto_0
  494.  
  495. .line 913
  496. :cond_1
  497. new-instance v9, Ljava/io/File;
  498.  
  499. move-object v15, v9
  500.  
  501. move-object v9, v15
  502.  
  503. move-object v10, v15
  504.  
  505. move-object v11, v0
  506.  
  507. move-object v12, v4
  508.  
  509. move v13, v5
  510.  
  511. aget-object v12, v12, v13
  512.  
  513. invoke-direct {v10, v11, v12}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
  514.  
  515. new-instance v10, Ljava/io/File;
  516.  
  517. move-object v15, v10
  518.  
  519. move-object v10, v15
  520.  
  521. move-object v11, v15
  522.  
  523. move-object v12, v1
  524.  
  525. move-object v13, v4
  526.  
  527. move v14, v5
  528.  
  529. aget-object v13, v13, v14
  530.  
  531. invoke-direct {v11, v12, v13}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
  532.  
  533. invoke-static {v9, v10}, Lcom/bbm/dhian/textColor/Saffa;->copyDirectory(Ljava/io/File;Ljava/io/File;)V
  534.  
  535. .line 914
  536. add-int/lit8 v5, v5, 0x1
  537.  
  538. goto :goto_1
  539.  
  540. .line 919
  541. :cond_2
  542. new-instance v9, Ljava/io/FileInputStream;
  543.  
  544. move-object v15, v9
  545.  
  546. move-object v9, v15
  547.  
  548. move-object v10, v15
  549.  
  550. move-object v11, v0
  551.  
  552. invoke-direct {v10, v11}, Ljava/io/FileInputStream;-><init>(Ljava/io/File;)V
  553.  
  554. move-object v4, v9
  555.  
  556. .line 920
  557. new-instance v9, Ljava/io/FileOutputStream;
  558.  
  559. move-object v15, v9
  560.  
  561. move-object v9, v15
  562.  
  563. move-object v10, v15
  564.  
  565. move-object v11, v1
  566.  
  567. invoke-direct {v10, v11}, Ljava/io/FileOutputStream;-><init>(Ljava/io/File;)V
  568.  
  569. move-object v5, v9
  570.  
  571. .line 921
  572. const/16 v9, 0x400
  573.  
  574. new-array v9, v9, [B
  575.  
  576. move-object v6, v9
  577.  
  578. .line 924
  579. :goto_3
  580. move-object v9, v4
  581.  
  582. move-object v10, v6
  583.  
  584. invoke-virtual {v9, v10}, Ljava/io/InputStream;->read([B)I
  585.  
  586. move-result v9
  587.  
  588. move v7, v9
  589.  
  590. .line 925
  591. move v9, v7
  592.  
  593. const/4 v10, 0x0
  594.  
  595. if-gt v9, v10, :cond_3
  596.  
  597. .line 927
  598. move-object v9, v4
  599.  
  600. invoke-virtual {v9}, Ljava/io/InputStream;->close()V
  601.  
  602. .line 928
  603. move-object v9, v5
  604.  
  605. invoke-virtual {v9}, Ljava/io/OutputStream;->close()V
  606.  
  607. .line 929
  608. goto :goto_2
  609.  
  610. .line 933
  611. :cond_3
  612. move-object v9, v5
  613.  
  614. move-object v10, v6
  615.  
  616. const/4 v11, 0x0
  617.  
  618. move v12, v7
  619.  
  620. invoke-virtual {v9, v10, v11, v12}, Ljava/io/OutputStream;->write([BII)V
  621.  
  622. goto :goto_3
  623. .end method
  624.  
  625.  
  626. =================================== STEP #2 ==================================
  627.  
  628. - navisha.xml
  629.  
  630. <PreferenceCategory android:title="Tools">
  631. <com.bbm.delta.CopyDataPref android:title="Backup Data" android:summary="Click here to backup chats" />
  632. <com.bbm.delta.RestoreDataPref android:title="Restore Data" android:summary="Click here to restore chats" />
  633. </PreferenceCategory>
  634.  
  635. - strings.xml
  636.  
  637. <string name="BackupTitle">Backup Chats</string>
  638. <string name="BackupMsg">Backing up chats... All data saved and hide to /sdcard/DELTA/.chats</string>
  639. <string name="RestoreTitle">Restore Chats</string>
  640. <string name="RestoreMsg">Restoring chats...</string>
  641. <string name="errorbackup">Error!</string>
  642. <string name="BackupDone">Backup finish! All data saved and hide to /sdcard/DELTA/.chats</string>
  643. <string name="NoBackup">"Can't find any backup in '/sdcard/DELTA'!"</string>
  644.  
  645. ================================= BIG THANKS =================================
  646. - Atnfas_Hoak (@OsmDroid) - GBBM
Advertisement
Add Comment
Please, Sign In to add comment