কোনও অ্যাডবি ব্যাকআপ তৈরি করা ফাইল ভিতরে lookুকতে এবং সংশোধন করার কোনও উপায় আছে?


40

আমি আমার গ্যালাক্সি নেক্সাসের সাথে একটি ব্যাকআপ তৈরি করেছি adb backup। ফলস্বরূপ ফাইলটির নাম ব্যাকআপ.ডিবি এবং এটি কোনওভাবে এনক্রিপ্ট করা হয়েছে।

আমি ব্যাকআপটি পুনরুদ্ধার করতে চেয়েছিলাম, তবে এটি পুনরুদ্ধার করার সময় বন্ধ হয়ে যায় com.android.providers.contacts। আমি adb logcatকী চলছে তা সন্ধান করতে ব্যবহার করেছি এবং com.android.acoreপুনরুদ্ধার প্রক্রিয়া চলাকালীন ক্র্যাশ হয়েছে তা খুঁজে পেয়েছি ।

আমি ব্যাকআপে ডেটাতে অ্যাক্সেস পেতে এবং যোগাযোগগুলি ডাটাবেসটি সরিয়ে আমার ফোনে সবকিছু ফিরিয়ে আনতে চাই। ব্যাকআপ থেকে ডেটা পুনরুদ্ধার করার অন্য কোনও উপায় আছে?

উত্তর:


14

ফাইলটি এনক্রিপ্ট করা হয় না, যদি না ব্যাকআপটি তৈরি করার সময় আপনার নির্দিষ্ট করে দেয়। এটি সঙ্কুচিত (ডিফল্ট ব্যবহার করে)। আপনি অ্যান্ড্রয়েড উত্স (কম / অ্যান্ড্রয়েড / সার্ভার / ব্যাকআপম্যানেজারসেবা.জাভা) কোডটি দেখে সঠিক ফর্ম্যাটটি আবিষ্কার করতে পারেন এবং প্রযুক্তিগতভাবে এটি থেকে নির্দিষ্ট ডেটা বের করতে সক্ষম হওয়া উচিত। যাইহোক, আইআইআরসি, সেখানে কিছু ফাইল অখণ্ডতা যাচাই আছে, সুতরাং আপনি সম্ভবত এটি থেকে একগুচ্ছ ডেটা মুছে ফেললে সম্ভবত এটি কাজ করবে না। দুর্ভাগ্যক্রমে restoreকমান্ডের কাছে কোনও নির্দিষ্ট অ্যাপ / প্যাকেজ পুনরুদ্ধার করার বা প্যাকেজ বাদ দেওয়ার বিকল্প নেই বলে মনে হচ্ছে।


ধন্যবাদ! এটি ফাইলের ভিতরে দেখার জন্য অন্তত একটি সূচনা পয়েন্ট। আমি যদি ব্যাকআপের জন্য একটি পাসওয়ার্ড না দিয়ে থাকি তবে আরও সহজ হত।
ইঙ্গোরিখটার

আপনি যদি একটি পাসওয়ার্ড সরবরাহ করে থাকেন তবে তা সত্যই এনক্রিপ্ট করা আছে। `ব্যাকআপ ম্যানেজারসেবা'র প্রকৃত এনক্রিপশন অ্যালগরিদমগুলির বিশদ রয়েছে এবং কী ডেরাইভেশন প্যারামিটারগুলি (নুন, পুনরাবৃত্তি গণনা ইত্যাদি) ফাইল শিরোনামে লেখা আছে। আপনি যেহেতু পাসওয়ার্ডটি জানেন তাই আপনি কীটি বের করতে এবং ডেটা ডিক্রিপ্ট করতে পারেন। সুতরাং এটি এখনও কার্যক্ষম, তবে বিশেষভাবে সহজ নয় ...

হ্যাঁ, আমি বর্তমানে BackupManagerServiceব্যাকআপ ফাইলের বিষয়বস্তু পড়ার জন্য সমস্ত কিছু বের করছি । এটি বেশ ভাল পরিমাণের কাজ, তবে আমার ডেটা ফেরত দরকার ...
ইঙ্গোরিক্টারে

@ ইংরিখটার কোন অগ্রগতি?
জন

@ ইংরিখিটার আমি এটিতে কাজ শুরু করে নীচে একটি "সম্প্রদায় উইকি" উত্তরে একটি টন নোট পোস্ট করেছি। এটি যোগ করতে নির্দ্বিধায়।
জন

50

আমি এই কাজ শুরু। আমি এখানে এতক্ষণে আমার ফলাফলগুলি "সম্প্রদায়ের উইকি" উত্তর হিসাবে দু'টি কারণে পোস্ট করছি: প্রথমত, অন্য কেউ যদি এতে যোগ দিতে চায় তবে কথা বলার জায়গা আছে; দ্বিতীয়ত, যদি আমি এই প্রকল্প থেকে সরে আসি তবে অন্য কারও পক্ষে কাজ শুরু করার ইঙ্গিত পাওয়া যাবে।

 

হোস্টের ব্যাকআপ যুক্তিটি সম্পূর্ণরূপে নামের ফাংশনে https://github.com/android/platform_system_core/blob/master/adb/commandline.cpp এর মধ্যে রয়েছে backup। ফাংশনটি খুব সহজ: এটি কমান্ড লাইন বিকল্পগুলি যাচাই করে, ফোনে অ্যাডাব ডেমনকে কমান্ডটি বেশিরভাগের মতো প্রেরণ করে এবং ফোনের ফোনের আউটপুটটি লিখে দেয়। এমনকি ত্রুটি-চেক করাও নেই: উদাহরণস্বরূপ, আপনি যদি ফোনে ব্যাকআপটি প্রত্যাখ্যান করেন, adbকেবল একটি খালি ফাইল লিখুন।

ফোনে, ব্যাকআপ যুক্তিবিজ্ঞান মধ্যে শুরু হয় service_to_fd()https://github.com/android/platform_system_core/blob/master/adb/services.cpp । ফাংশনটি সনাক্ত করে যে হোস্টের কাছ থেকে প্রাপ্ত আদেশটি "backup", এবং আনপার্সড কমান্ডটি পাস করে /system/bin/buযা একটি নতুন অ্যান্ড্রয়েড অ্যাপ্লিকেশন প্রক্রিয়ার মূল শ্রেণি হিসাবে চালু করার জন্য একটি তুচ্ছ শেল স্ক্রিপ্টcom.android.commands.bu.Backup । কল ServiceManager.getService("backup")একটি যেমন ব্যাকআপ সেবা পেতে IBackupManager, এবং কলের IBackupManager.fullBackup()এটি এখনও-অব্যবহৃত ফাইল বর্ণনাকারী ক্ষণস্থায়ী, (খুব পরোক্ষভাবে) এ সংযুক্ত backup.abহোস্ট ফাইল।

কন্ট্রোল হাতে থাকে fullBackup()মধ্যে com.android.server.backup.BackupManagerService , যা GUI নিশ্চিত করতে ব্যবহারকারীকে জিজ্ঞাসা / ব্যাকআপ প্রত্যাখ্যান পপ আপ। যখন ব্যবহারকারী এটি করেন, acknowledgeFullBackupOrRestore()(একই ফাইল) কল করা হয়। যদি ব্যবহারকারী এই অনুরোধটি অনুমোদন করে acknowledgeFullBackupOrRestore()তবে ব্যাকআপটি এনক্রিপ্ট করা হয়েছে কিনা তা নির্ধারণ করে এবং BackupHandler(একই ফাইলটি) একটি বার্তা পাঠায় BackupHandlerতবে তা ইনস্ট্যান্ট করে একটি PerformAdbBackupTask( একই ফাইল, লেখার সময়কালে 4004 লাইন ) কেটে দেয়

আমরা অবশেষে PerformAdbBackupTask.run()4151 লাইন এবং 4330 লাইনের মধ্যে আউটপুট উত্পাদন শুরু করি

প্রথমে run()একটি শিরোলেখ লিখেছে, যার মধ্যে 4 বা 9 ASCII লাইন রয়েছে:

  1. "ANDROID BACKUP"
  2. ব্যাকআপ বিন্যাস সংস্করণ: বর্তমানে "4"
  3. হয় "0"যদি ব্যাকআপটি সঙ্কুচিত হয় বা "1"হয়
  4. এনক্রিপশন পদ্ধতি: বর্তমানে পারেন "none"বা"AES-256"
  5. (যদি এনক্রিপ্ট করা থাকে), "ব্যবহারকারী পাসওয়ার্ড লবণ" হেক্সে এনকোড হয়েছে, সমস্ত ক্যাপ
  6. (যদি এনক্রিপ্ট করা থাকে), "মাস্টার কী চেকসাম লবণ" হেক্সে এনকোড করা হয়েছে, সমস্ত ক্যাপ
  7. (যদি এনক্রিপ্ট করা থাকে), দশমিক সংখ্যা হিসাবে "ব্যবহৃত PBKDF2 রাউন্ডগুলির সংখ্যা": বর্তমানে "10000"
  8. (যদি এনক্রিপ্ট করা থাকে), "ব্যবহারকারী কী এর আইভি" হেক্সে এনকোড করা আছে, সমস্ত ক্যাপ
  9. (যদি এনক্রিপ্ট করা থাকে), "মাস্টার চতুর্থ + কী ব্লব, ব্যবহারকারী কী দ্বারা এনক্রিপ্ট করা" হেক্সে এনকোড করা আছে, সমস্ত ক্যাপ

প্রকৃত ব্যাকআপ তথ্য হিসাবে (কম্প্রেশন এবং এনক্রিপশন উপর নির্ভর করে), অনুসরণ পারেন tar, deflate(tar), encrypt(tar), অথবা encrypt(deflate(tar))

 

ট্ডো : কোড আউটপুটটি টার আউটপুট উত্পন্ন করে লিখুন - এন্ট্রিগুলি যথাযথ ক্রমে যতক্ষণ থাকে ততক্ষণ আপনি নীচে ব্যবহার করতে পারেন (নীচে দেখুন)।

টার সংরক্ষণাগার বিন্যাস

অ্যাপ্লিকেশন ডেটা অ্যাপ্লিকেশন / ডিরেক্টরিতে সংরক্ষণ করা হয়, _ ম্যানিফেস্ট ফাইল দিয়ে শুরু করে, এপিএকে (যদি অনুরোধ করা হয়) এফ /, অ্যাপ্লিকেশন ফাইলগুলিতে ডি / / এ ডেটাবেজে এবং এসপি / তে ভাগ করা পছন্দসমূহ। আপনি যদি বাহ্যিক স্টোরেজ ব্যাকআপের জন্য অনুরোধ করেন (-সম্পাদিত বিকল্পটি ব্যবহার করে), বাহ্যিক স্টোরেজ ফাইলগুলি সংরক্ষণাগারটিতে একটি ভাগ / ডিরেক্টরি থাকবে।

$ tar tvf mybackup.tar
-rw------- 1000/1000      1019 2012-06-04 16:44 apps/org.myapp/_manifest
-rw-r--r-- 1000/1000   1412208 2012-06-02 23:53 apps/org.myapp/a/org.myapp-1.apk
-rw-rw---- 10091/10091     231 2012-06-02 23:41 apps/org.myapp/f/share_history.xml
-rw-rw---- 10091/10091       0 2012-06-02 23:41 apps/org.myapp/db/myapp.db-journal
-rw-rw---- 10091/10091    5120 2012-06-02 23:41 apps/org.myapp/db/myapp.db
-rw-rw---- 10091/10091    1110 2012-06-03 01:29 apps/org.myapp/sp/org.myapp_preferences.xml

এনক্রিপশন বিশদ

  1. একটি এইএস 256 কী এলোমেলোভাবে উত্পাদিত 512 বিট লবণের সাথে পিবিকেডিএফ 2 এর 10000 রাউন্ড ব্যবহার করে ব্যাকআপ এনক্রিপশন পাসওয়ার্ড থেকে নেওয়া হয়।
  2. একটি এইএস 256 মাস্টার কী এলোমেলোভাবে উত্পন্ন হয়
  3. একটি নতুন এলোমেলোভাবে উত্পাদিত 512 বিট লবণের সাথে পিবিকেডিএফ 2 এর 10000 রাউন্ডের মাধ্যমে মাস্টার কী চালিয়ে একটি মাস্টার কী 'চেকসাম' তৈরি করা হয়।
  4. একটি এলোমেলো ব্যাকআপ এনক্রিপশন IV উত্পন্ন হয়।
  5. চতুর্থ, মাস্টার কী এবং চেকসামটি 1 এ প্রাপ্ত কীটির সাথে একত্রিত হয়ে এবং এনক্রিপ্ট করা হয়েছে যার ফলে ফলকটি একটি শিরোনামের মতো একটি শিরোনামে সংরক্ষণ করা হয়।
  6. আসল ব্যাকআপ ডেটা মাস্টার কী দিয়ে এনক্রিপ্ট করা হয় এবং ফাইলটির শেষে যুক্ত হয়।

নমুনা প্যাক / আনপ্যাক কোড প্রয়োগকরণ (উত্পাদন / ব্যবহার) টার সংরক্ষণাগারগুলি: https://github.com/nelenkov/android-backup-extractor

আরও কিছু বিশদ এখানে: http://nelenkov.blogspot.com/2012/06/unpacking-android-backups.html

ভাঙা সংরক্ষণাগারগুলি প্যাকিং / আনপ্যাকিং এবং ফিক্সিংয়ের জন্য পার্ল স্ক্রিপ্টগুলি:

http://forum.xda-developers.com/showthread.php?p=27840175#post27840175


আপনি যদি কোথাও কোডটি রাখেন তবে আমি যুক্ত হতে পারব। ওপি (@ জঙ্গরিচটার) সম্ভবত এখনই কিছু কার্যকরী কোড রয়েছে :) একটি ইউটিলিটি যা প্রকৃত ফাইলগুলি সংক্ষেপিত করে এবং নিষ্কাশন করে তা কার্যকর হতে পারে, যাতে আপনি কেবলমাত্র অংশগুলি পুনরুদ্ধার করতে পারেন (যদি আপনার অবশ্যই মূল থাকে)।
নিকোলে এলেনকোভ

1
এনক্রিপশন অংশ হিসাবে, আমি বিশদটি এটি সন্ধান করতে হবে, তবে কীটি পিবিকেডিএফ 2 ব্যবহার করে লবণ এবং ডিভাইস আনলক পিন, পাসওয়ার্ড বা প্যাটার্ন (স্ট্রিংয়ে রূপান্তরিত) দ্বারা উদ্ভূত হয়েছে। মাস্টার কীটি এলোমেলোভাবে উত্পন্ন হয় এবং পাসওয়ার্ড-উত্পন্ন কী সহ এনক্রিপ্ট করা হয়। প্রথমে এনক্রিপ্ট করা সংরক্ষণাগারগুলির কাজ করার জন্য এটি পান। আপনার যদি সমস্যা হয় তবে আমি ডিক্রিপশন অংশটি প্রয়োগ করতে পারি।
নিকোলে এলেনকভ

দুঃখিত, ব্যাকআপ শুরু করার সময় আপনি যে পাসওয়ার্ডটি নির্দিষ্ট করেছেন তার উপর ভিত্তি করে কীটি আসলে নেওয়া হয়েছিল।
নিকোলে এলেনকভ

@ নিকোলেএলেঙ্কভ আমার কাছে এখনও কোনও কোড নেই তবে আমি অ্যাব ফাইলগুলি চালিত করতে ইউটিলিটি লেখার পরিকল্পনা করছি। Wrt এনক্রিপশন, আমি মনে করি এটি কঠিন হবে না; এটি কেবলমাত্র আমি কোডের সেই অংশটি দেখেছি। একইভাবে, আমি কোড পথটি (এখনও উপরে লিখিত হয়নি) সন্ধান করেছি যা টার স্ট্রিম উত্পন্ন করে, তবে এখনও পরীক্ষা করে দেখিনি যে আসল বিন্যাসটি জিএনইউ টর।
জন

বাহ, আমি আপনার বিশ্লেষণ দ্বারা মুগ্ধ। আমি ব্যাকআপম্যানেজারসেবা থেকে একটি সাধারণ গ্রোভি স্ক্রিপ্টে কিছু কোড বের করেছি, তবে আমি প্রোগ্রামটি চালানোর সময় ফলাফলটি সর্বদা একই থাকে: ভুল পাসওয়ার্ড প্রবেশ করানো হয়েছে! আমি একটি সাধারণ পাসওয়ার্ড সহ একটি নতুন ব্যাকআপ তৈরি করেছি, তবে পাসওয়ার্ড যাচাইকরণ আবার ব্যর্থ হয়েছে। বর্তমানে আমি আমার ভুলটি খুঁজে পেতে উপরে বর্ণিত প্রোগ্রামটি অনুসরণ করার চেষ্টা করছি।
ইংরিখটার

7

নিকোলে এলেনকভের দুর্দান্ত এবং বিস্তারিত উত্তর । তবে আমার যোগ করা উচিত যে ইতিমধ্যে কেউ এমন একটি সফ্টওয়্যার তৈরি করেছে যা কেবল এটি করে এবং এটি এখানে প্যাকেজ করে: http://sourceforge.net/projects/adbextractor/

প্যাকেজে জাভা এবং পার্ল উভয়ই রয়েছে। আমি নিজে যে কোনও দিন জাভার চেয়ে পার্লকে প্রাধান্য দিই, তাই আমি পার্ল কোডগুলি বের করেছি, তারা নির্বাহযোগ্য কিনা তা নিশ্চিত করে নিন, প্রয়োজনীয় পার্ল লাইব্রেরি ইনস্টল করেছেন এবং backupdecrypt.plএকটি অ্যাডবি ব্যাকআপ ফাইলের বিপরীতে চালান , এবং এটি এটিকে কোনও বিনা বা টর্মে বা জিজেপড টার ফাইলে রূপান্তর করে সমস্যা.

এমনকি আমি বাশ 3-তে একটি লাইন তৈরি করেছি যা আমাকে সরাসরি জিজিপড টার ফাইলটিতে অ্যাডবি ব্যাকআপ করতে দেয়:

adb backup -f >(backupdecrypt.pl -D -z - backup.tgz) -all

আশা করি এটা সাহায্য করবে.


6
হ্যাঁ, তারা যে টুলটি লিখেছিল তা আমি প্যাকেজ করেছিলাম (জাভা এক) আমি লিখেছিলাম :) আমি পার্লকে জিনিসটি পোর্ট করতেও সহায়তা করেছি। আপনি যদি READMEs না পড়ে থাকেন তবে তা অবিলম্বে প্রকাশিত হবে না যে লিখনটি প্রথমে এসেছিল, তারপরে সরঞ্জামগুলি ....
নিকোলে এলেনকোভ

আমি ব্যাকআপ নিয়েছি তবে এটি .ab ফাইল তৈরি করে নি, পরিবর্তে এটি .ব্যাকআপ ফাইল তৈরি করেছে। আমি এটি কীভাবে নিষ্কাশন করতে চাই তা জানতে চাই। এছাড়াও আমি নিশ্চিত নই যে এটি সমস্ত ফটো এবং ভিডিওর ব্যাকআপ হিসাবে নিয়েছে?
হাজিরাজিন

-4

বিদ্যমান ব্যাকআপ ফাইলটি অন্বেষণের জন্য, http://www.adb-backup.com পৃষ্ঠা ব্যবহার করে দেখুন, এটি "ডিডি", "টার" ছাড়া সহজ ...

এই সার্ভারে ডেটা সংরক্ষণ করা হয়নি। আমি ডিডি / টারে ব্যবহার করে বা অতিরিক্ত সফ্টওয়্যার ইনস্টল না করে ব্যাকআপগুলি দেখতে আরও সহজ করার জন্য এই অনলাইন পরিষেবাটি তৈরি করেছি। আমি লেখক www.adb-backup.com


7
আমি কোনও এ্যান্ডব ব্যাকআপ (এবং পাসওয়ার্ড সরবরাহ) একটি এলোমেলো ওয়েবসাইটে আপলোড করার বিষয়ে খুব সতর্ক থাকব ... অ্যাডবি ব্যাকআপের অন্তর্ভুক্ত ডেটা ব্যক্তিগত এবং আপনার ব্যাকআপের সাহায্যে সাইটটি কী করবে তা জানার কোনও উপায় নেই। এটি নিরীহ হতে পারে তবে আমি এটি করার পরামর্শ দেব না।
বিএমডিক্সন

মেটাসমোকের মতে এটি একটি স্প্যাম url । তা ছাড়া আমি এখানে @ বিএমডিক্সনের সাথে পুরোপুরি একমত - বিশেষত নিরাপদ উপায়ে স্থানীয়ভাবে কাজটি সম্পাদন করার কারণে।
ইজি

@ আইজি যাইহোক যাইহোক আমি স্প্যাম হিসাবে চিহ্নিত করেছি এবং এটি স্মোকডেেক্টরকে জানিয়েছি।
আইবুগ

এই সার্ভারে ডেটা সংরক্ষণ করা হয়নি। আমি ডিডি / টারে ব্যবহার করে বা অতিরিক্ত সফ্টওয়্যার ইনস্টল না করে ব্যাকআপগুলি দেখতে আরও সহজ করার জন্য এই অনলাইন পরিষেবাটি তৈরি করেছি। আমি লেখক www.adb-backup.com
লিসাক যাক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.