আমি কীভাবে আমার ডিভাইসটিকে লিনাক্স এডিবি দ্বারা সনাক্ত করব?


18

আমি সবেমাত্র আমার চকচকে নতুন উইলেফক্স সুইফ্ট পেয়েছি - এবং এটি ব্যবহার করার আগে আমি এটি ব্যবহার করতে চাই oem unlockএবং রুট করতে চাই (যেমন আমি সাধারণত নতুন ডিভাইসগুলির সাথে করি;) সমস্যাটি হ'ল ডিভাইসে সক্ষম হওয়া সত্ত্বেও, একটি সম্পর্কিত লাইন /etc/udev/rules.d/51-android.rulesবিদ্যমান , ডিভাইস দ্বারা দেখা হয় না adb devices

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

আমি কীভাবে আমার অ্যান্ড্রয়েড ডিভাইসটিকে adbলিনাক্সে দেখে এবং ব্যবহার করতে পারি ?


আমি সমালোচকদের কাছে সর্বদা উন্মুক্ত - তবে ব্যাখ্যা ছাড়াই একটি ডাউনভোট ব্যাখ্যা করা শক্ত। তাহলে ডাউনটাওয়্যার দয়া করে ব্যাখ্যা করবেন যে প্রশ্নটিতে কী উন্নতি করা উচিত? আমি প্রতিশ্রুতি দিচ্ছি যে শাস্তির জন্য আমার আধুনিক ক্ষমতাগুলিকে অপব্যবহার করা হবে না :)
ইজি

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

1
@ ফায়ারলর্ড দৃinc়প্রত্যয়ী শোনায় (অতিরিক্ত ব্যর্থ পদক্ষেপগুলি রোধ করতে প্রশ্নটি কিছুটা সম্পাদিত)। তবে তারপরে, সেই ব্যবহারকারীর উত্তরটি উঁচু করে নেওয়া উচিত ছিল। বা আমি সেখানে কিছু মিস করেছি? ;)
ইজি

উত্তর:


24

ডিভাইসে ইউএসবি ডিবাগিং সক্ষম করুন

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

ডিভাইসটি সনাক্ত করুন

প্রথমে আমাদের ইউএসবি বাসে ডিভাইসটি কীভাবে সনাক্ত করে তা জানতে হবে। তার জন্য, অ্যান্ড্রয়েড ডিভাইসটি সংযুক্ত না হয়ে , একটি শেল ধরুন এবং কমান্ডটি চালান lsusb। তারপরে ডিভাইসটি সংযুক্ত করুন এবং আবার কমান্ডটি চালান। নতুন লাইন স্পট করুন। উইলেফক্স সুইফ্টের জন্য এটি একটি " নামবিহীন ডিভাইস":

Bus 004 Device 003: ID 2970:2282

এডিবি-র জন্য বিধি বিধান প্রণয়ন

আমরা এখন উপরে লাইনের শেষে সংখ্যার প্রয়োজন: 2970:2282। এগুলি বিক্রেতা (2970) এবং ডিভাইস নিজেই (2282) নির্দিষ্ট করে। এই বিবরণগুলি সহ, ফাইলটি সম্পাদনা করতে (বা তৈরি করতে, এটি এখনও উপস্থিত না থাকলে) তৈরি করতে আমাদের লিনাক্স মেশিনে একটি রুট শেল দরকার /etc/udev/rules.d/51-android.rules। সেখানে, আপনার ডিভাইসের জন্য একটি লাইন যুক্ত করুন। নিম্নলিখিত উদাহরণের লাইনটি উইলিফক্স সুইফটকে কীভাবে দেখায় তা দেখায় : ¹

SUBSYSTEMS=="usb", ATTRS{idVendor}=="2970", ATTRS{idProduct}=="2282", MODE="0666" GROUP="androiddev", SYMLINK+="android%n"

আপনার যদি অন্য কোনও ডিভাইস থাকে তবে চালানোর সময় উপরে যা পেয়েছেন তার সাথে বিক্রেতা এবং পণ্য আইডি প্রতিস্থাপন করুন lsusb। লাইনটির একটি সংক্ষিপ্ত ব্যাখ্যা:

  • SUBSYSTEMS=="usb": স্পষ্টতই এই বিধিটি কেবল ইউএসবি-র জন্য;)
  • ATTRS{idVendor}=="2970": এই নিয়মের জন্য ডিভাইসটির বিক্রেতার আইডি
  • ATTRS{idProduct}=="2282": ডিভাইস আইডি
  • MODE="0666": ডিভাইস নোডের অনুমতি পাবে। 0666আপনার সিস্টেমের প্রতিটি ব্যবহারকারীর পড়ার এবং লেখার অনুমতি দেওয়ার ক্ষেত্রে বেশ শিথিলতা - সুতরাং যদি আপনি উদ্বিগ্ন হন তবে আপনি 0660এটির পরিবর্তে চেষ্টা করতে পারেন (কেবলমাত্র মালিক এবং গোষ্ঠীর পাঠ্য-লেখাই এবং অন্যকে সবকিছু অস্বীকার) দিয়ে।
  • GROUP="androiddev": ডিভাইস নোডটি কোন গ্রুপের অন্তর্ভুক্ত। এটি এমন একটি গ্রুপ হওয়া উচিত যা ব্যবহারকারীদের অন্তর্ভুক্ত ডিভাইসের সাথে কাজ করার ইচ্ছা করেছিল intended
  • SYMLINK+="android%n": কেবল নোডকে একটি সুন্দর নাম দেওয়ার জন্য, যাতে আপনি এটি আরও সহজে খুঁজে পেতে পারেন /dev(আমার ক্ষেত্রে এটি পরে সেখানে প্রদর্শিত হয়েছিল /dev/android5)

এই নিয়মটি প্রবেশ করেছে /etc/udev/rules.d/51-android.rules, udevএটির ব্যবহার করতে আমাদের অবশ্যই বলতে হবে। নিরাপদ উপায়ে (একটি রিবুটের পাশে;) udevপরিষেবাটি পুনঃসূচনা করছে । আপনার লিনাক্স ডিস্ট্রোর উপর নির্ভর করে এটি হয় service udev restartবা এর মাধ্যমে করা যেতে পারে /etc/init.d/udev restart

হয়ে গেল, রুট শেলটি ছেড়ে দিন। আপনার অ্যান্ড্রয়েড ডিভাইস সংযোগ বিচ্ছিন্ন করুন এবং পুনরায় সংযোগ করুন, adb devicesআবার চেষ্টা করুন । বেশিরভাগ ডিভাইস এখনই প্রদর্শিত হয়েছে, তবে উইলিফক্স সুইফট নয় - যা স্পষ্টতই কিছু অতিরিক্ত চাদর চায়। আপনি যদি এই পরিস্থিতিতে থাকেন তবে ফাইলটি খুলুন (বা এটি উপস্থিত না থাকলে তৈরি করুন) ~/.android/adb_usb.iniএবং উপরে একটি লাইন যুক্ত করুন, আপনি lsusbউপরে যে বিক্রেতার সন্ধান পেয়েছেন তাদের নামকরণ করুন ; জন্য সুইফট যে হবে 0x2970(yupp, এখানে আপনি এটা তার প্রিফিক্স প্রয়োজন 0xএটা একটি হেক্সাডেসিমেল সংখ্যা নির্দেশ)। তারপর এডিবি সার্ভার পুনরায় আরম্ভ করুন: adb kill-server && adb start-server। সংযোগ বিচ্ছিন্ন এবং আবার ডিভাইস। এখন adb devicesএটি দেখতে হবে।

ডিভাইসটি সংযুক্ত হচ্ছে

আপনি লক্ষ্য করে থাকবেন পারে adb devicesআপনার মত কিছু বলেন 0123456789ABCDEF unauthorized। এটি ঠিক আছে এবং আপনার (ডিভাইস) সুরক্ষার জন্য: ডিভাইসটি অ্যাক্সেস করতে সক্ষম হওয়ার জন্য আপনার কম্পিউটারকে প্রথমে অনুমোদিত করতে হবে। সুতরাং adb shellএখনই ইস্যু করুন - যা একটি error: device unauthorized. Please check the confirmation dialog on your device.পরামর্শ দিয়ে প্রস্থান করা হবে সেই পরামর্শটি অনুসরণ করুন (স্থায়ীভাবে আপনার কম্পিউটারকে অনুমোদন দেওয়ার জন্য চেক-বাক্স চিহ্নিত করুন) এবং আপনার কাজ শেষ হয়েছে: এখন আপনি নিজের ডিভাইসে অ্যাক্সেস করতে ব্যবহার করতে পারেন ।


আপডেট:

¹ নোট করুন যে পরবর্তী লিনাক্স সংস্করণগুলিতে, ইউডিইভি বিধিগুলির জন্য সিনট্যাক্সটি কিছুটা পরিবর্তিত হয়েছে, যেমন: জেমকমাউটিক্স তার মন্তব্যে উল্লেখ করেছেন। আমরা উপরে যে মানগুলি পেয়েছি তার জন্য এটি হবে:

SUBSYSTEM=="usb", ATTR{idVendor}=="2970", ATTR{idProduct}=="2282", MODE="0666", GROUP="plugdev", SYMLINK+="android%n"

দুটি পার্থক্য: এটি এখন SUBSYSTEM(বহুবচন নয়), এবং গোষ্ঠীটি থেকে পরিবর্তিত androiddevহয়েছে plugdev(সাম্প্রতিক সিস্টেমে পূর্ববর্তীটি বিদ্যমান নেই, পরবর্তীটি এটি করেন এবং সাধারণত কমপক্ষে প্রথম ব্যবহারকারীর কাছে নিযুক্ত করা হয়)।

অতিরিক্তভাবে, আপনার নিজের ভেন্ডোরিড যুক্ত করতে হবে ~/.android/adb_usb.ini(হেক্স নোটেশনে প্রতি লাইনে একটি আইডি):

# ANDROID 3RD PARTY USB VENDOR ID LIST
# 1 USB VENDOR ID PER LINE.
0x2970

1
আমার জেসি সিস্টেমে উদেব নিয়মের ফর্ম্যাটটি আলাদা ছিল: আপনি যা বলেছিলেন তেমন jcomeau@aspire:~$ tail -n 1 /etc/udev/rules.d/99-android.rules SUBSYSTEM=="usb", ATTR{idVendor}=="0e8d", ATTR{idProduct}=="201d", MODE="0666", GROUP="plugdev", SYMLINK+="android%n" jcomeau@aspire:~$ cat ~/.android/adb_usb.ini # ANDROID 3RD PARTY USB VENDOR ID LIST -- DO NOT EDIT. # USE 'android update adb' TO GENERATE. # 1 USB VENDOR ID PER LINE. 0x0e8d চালানোর জন্য android update adbএবং নিজে নিজে এটি প্রবেশ করার পরামর্শ আমাকে উপেক্ষা করতে হয়েছিল ।
jcomeau_ictx

প্রতিক্রিয়াটির জন্য @jcomeau_ictx ধন্যবাদ! আপনার মন্তব্য থেকে আমি যতদূর দেখতে পাচ্ছি, এটি কেবলমাত্র একটি পৃথক ব্যবহারকারী গোষ্ঠী ( plugdevপরিবর্তে androiddev) ব্যবহার করছে। যাচাই করা হয়নি, তবে আমি এখানে গুরুত্বপূর্ণ অংশটি বলব এটি হ'ল এটি একটি গ্রুপ যা আপনার ব্যবহারকারীর (যা দিয়ে আপনি ইউএসবি ব্যবহার করতে চান) এরও রয়েছে।
ইজি

1
এছাড়াও SUBSYSTEMপরিবর্তে SUBSYSTEMS, ATTRপরিবর্তে ATTRS, কমা পরে MODE="0666" নিশ্চিত হওয়া যায় না যে এই সমস্ত পরিবর্তনগুলি প্রয়োজনীয় ছিল কিনা, তবে এটিই কাজ করেছিল।
jcomeau_ictx

ওহ - ধন্যবাদ, এই ছোটগুলি মিস করেছেন, @ জ্যাকোউ_ অ্যাক্টেক্স - ভাল পয়েন্ট!
ইজি

লিনাক্স অ কাণ্ডজ্ঞান ভাবেন জন্য sudo wget -O /etc/udev/rules.d/51-android.rulesথেকে এখানে আমার Xiaomi মি ক 1 আমার কাজ করেন। অবশ্যই এটি শিখতে ভাল তবে অলস হওয়া ভাল :)
বীশিয়ামস

0

নতুন লিনাক্স বিতরণ থেকে কয়েকটি মন্তব্য। নেক্সাস 5 এক্স বা নোকিয়া 7.1 (অ্যান্ড্রয়েড ওয়ান) ফোন সহ ফেডোরা 29।

ইতিমধ্যে সংযুক্ত থাকলে প্রথমে ফোনটি সংযোগ বিচ্ছিন্ন করুন।

  1. অ্যান্ড্রয়েড-সরঞ্জামগুলি ইনস্টল করুন যা এডিবি সরবরাহ করবে ( sudo dnf install android-tools)
  2. ইউদেব বিধিগুলি অনুলিপি করুন ( sudo cp /usr/share/doc/android-tools/51-android.rules /etc/udev/rules.d)
  3. ওদেব বিধিগুলি পুনরায় লোড করুন ( sudo udevadm control --reload-rules)
  4. নিশ্চিত হতে এডিবি পুনরায় চালু করুন ( sudo systemctl restart adb)

এখন ফোনটি সংযুক্ত করুন এবং adb devicesকমান্ড লাইন থেকে চালান । আপনি সম্ভবত "অনুমতি ছাড়াই" তালিকাভুক্ত একটি ডিভাইস দেখতে পাবেন। এই জরিমানা.
যদি এটি তালিকাভুক্ত না হয় তবে আপনাকে নিজের ডিভাইসটি উদেব নিয়ম ফাইলে যুক্ত করতে হবে, তবে আমার জন্য পরীক্ষিত ডিভাইসগুলি পূর্বনির্ধারিত নিয়মের সাথে সবেমাত্র কাজ করেছে।

চালান adb shellএবং আশা করি আপনি কম্পিউটারে বিশ্বাস রাখতে চান কিনা তা জানতে ফোনে একটি সুরক্ষা বিজ্ঞপ্তি পাবেন yes
যদি এর পরিবর্তে আপনার কম্পিউটারটি "ত্রুটি: ডিভাইসের জন্য অপর্যাপ্ত অনুমতিগুলি" বলে থাকে, আপনাকে অবশ্যই সেই ফোনে আপনার USB পোর্টটি "স্থানান্তর ফাইলগুলি" মোডে সেট করেছেন এবং "এই ডিভাইসটি চার্জ করবেন না" তা নিশ্চিত করতে হবে। অ্যান্ড্রয়েড 8.1 এ এটি "সংযুক্ত ডিভাইস"> "ইউএসবি" এর অধীনে সেটিংসে অবস্থিত।

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

এটির সাহায্যে আমি অ্যান্ড্রয়েড স্টুডিও পরিচালনা করতে এবং সংযুক্ত ডিভাইসে চালাতে সক্ষম হয়েছি।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.