আমি কীভাবে কোনও অ্যান্ড্রয়েড ডিভাইসে অনুপস্থিত কমান্ড লাইন সরঞ্জাম ইনস্টল করব?


9

অ্যান্ড্রয়েড ইনস্টলেশনগুলির কাছে সবসময় এমন সমস্ত সরঞ্জাম থাকে না যেগুলি ইউনিক্সের মতো সিস্টেমে থাকতে পারে।

উদাহরণস্বরূপ, এই মুহূর্তে আমার কাছে একটি সমস্যাযুক্ত ডিভাইস রয়েছে যার findসি এল এল ইউটিলিটি নেই। আমি বোঝাতে চাইছি, ভিতরে থাকাকালীন আমি এটাই পাই adb shell:

$ find
/system/bin/sh: find: not found

এছাড়াও:

$ /system/bin/toolbox find
find: no such tool

এই নির্দিষ্ট ডিভাইসটি অ্যান্ড্রয়েড 5.0 চলছে (প্লিজ এলজি দ্বারা কিছু মালিকানাধীন সংযোজন, আমি অনুমান করি) তবে প্রশ্নটি অবশ্যই সমস্ত অ্যান্ড্রয়েড সংস্করণের জন্য।

findঅ্যান্ড্রয়েডে নেটিভ / সি এল এল সরঞ্জাম (যেমন ) ইনস্টল করার জন্য কি কোনও মানক পদ্ধতি রয়েছে ? (একটি প্যাকেজ ম্যানেজার? ) এবং যাইহোক, কীভাবে এটি সবচেয়ে সঠিক উপায়ে করবেন?



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

উত্তর:


5

মূলযুক্ত অ্যান্ড্রয়েড ডিভাইসের জন্য

আপনি স্টিফেন দ্বারা বুসিবক্স অ্যাপ্লিকেশন ইনস্টল করার বিষয়ে বিবেচনা করতে পারেন । প্রতি প্লে স্টোর, অ্যাপ্লিকেশন দ্বারা সমর্থিত সর্বনিম্ন অ্যান্ড্রয়েড সংস্করণটি অ্যান্ড্রয়েড 1.6 এবং এটি একটি ভাল-আপডেট হওয়া অ্যাপ। সংক্ষেপে, এটি ব্যস্তবক্স বাইনারি ইনস্টল করে /system/xbinএবং এটিতে থাকা সমস্ত ইউটিলিটির জন্য একই ডিরেক্টরিতে সিমলিংক স্থাপন করে।

কি busybox (অ্যাপ্লিকেশান পাওয়া যায়নি)?

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

এটি সরবরাহ করে এর সরকারী তালিকা এখানেfindসরঞ্জাম সেখানে পাওয়া যাবে।

ব্যাসিবক্সের একটি উপযুক্ত বিকল্প হ'ল টয়বক্স, যা মার্শমেলো রিলিজে টুলবক্সকে প্রতিস্থাপন করেছে

টয়বক্স কি ?

টয়বক্স অনেকগুলি সাধারণ লিনাক্স কমান্ড লাইন ইউটিলিটিগুলিকে একক বিএসডি-লাইসেন্সযুক্ত এক্সিকিউটেবলের সাথে একত্রিত করে। এটি সহজ, ছোট, দ্রুত এবং যুক্তিসঙ্গত মান-সম্মতিযুক্ত ( POSIX-2008 এবং LSB 4.1 )।

টয়বক্স সমর্থনের ইউটিলিটিগুলির আনুষ্ঠানিক তালিকা এখানে । ব্যস্তবক্স, এই মুহুর্তে, টয়বক্সের চেয়ে বেশি সরঞ্জাম সমর্থন করে বলে মনে হচ্ছে।

আমি মনে করি না একটি অ্যাপ্লিকেশন Toybox বাইনারি ইনস্টল করতে বিদ্যমান, তাই আপনি আমার উত্তর ব্যবহার করতে পারেন এখানে তার ইনস্টলেশন উদ্দেশ্যে। নোট করুন যে উত্তরটি টয়বক্স এবং ব্যাসিবক্স উভয়েরই ইনস্টলের জন্য ব্যবহার করা যেতে পারে। অফিসিয়াল উত্স থেকে বাইনারি কেবলমাত্র পূর্বশর্তই ডাউনলোড করা হচ্ছে।

সরকারী ডাউনলোড লিঙ্ক:

অমূলিত অ্যান্ড্রয়েড ডিভাইসের জন্য

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

তবে একটি অ্যাপ্রোচ আছে, যা 4.2 (আমার পরীক্ষার উপর ভিত্তি করে) উপরে যে কোনও অ্যান্ড্রয়েড সংস্করণে কাজ করছে বলে মনে হচ্ছে। /data/local/tmpএকটি ডিরেক্টরি যা shellব্যবহারকারীর দ্বারা সম্পাদিত হতে পারে । adb shellআপনাকে ডিভাইসে রিমোট শেলটি মঞ্জুরি দেয় এবং একই ব্যবহারকারী হিসাবে লগইন করে।

আপনাকে যা করতে হবে তা হ'ল ব্যাসিবক্স / টয়বক্স বাইনারি স্থাপন করা /data/local/tmpএবং একই ডিরেক্টরিতে ইউটিলিটির জন্য সিমলিংক তৈরি করা । আপনি এটির জন্য নিম্নলিখিত পদক্ষেপগুলি ব্যবহার করতে পারেন।

(প্রয়োজন পিসিতে সেটআপ।)

অ্যাডাবির LOCAL_FILE / ডেটা / স্থানীয় / tmp / # LOCAL_FILE প্রতিস্থাপন করুন পিসিতে টয়বক্স / ব্যস্তবক্স বাইনারি ফাইল ফাইলের সাথে
এডিবি শেল
chmod 755 / ডেটা / স্থানীয় / tmp / ফাইল # ধাক্কা বাইনারি ফাইলের উপযুক্ত অনুমতি সেট করে। প্রথম ধাপে আপনি যে বাইনারিটি ঠেলেছেন তার নাম দিয়ে ফাইলকে প্রতিস্থাপন করুন। প্রস্তাবিত হ'ল সমস্ত লোয়ার-কেসের অক্ষরের সাথে একটি শব্দ হিসাবে একটি শব্দ ব্যবহার করা
বক্স = / ডেটা / স্থানীয় / টিএমপি / ফাইল # পরবর্তী পদক্ষেপে ব্যবহারের জন্য স্থানীয় ভেরিয়েবল সেট আপ করে। যথাযথ হিসাবে FILE প্রতিস্থাপন করুন
$ বক্স | $ বক্স সেড 's / \ / \ n / g' | $ বক্স সেড '$ d' | পড়ার লাইন; do $ বক্স ln -sf / ডেটা / স্থানীয় / tmp / ফাইল / তথ্য / স্থানীয় / tmp / $ লাইন; সম্পন্ন # আমরা সমস্ত ইউটিলিটি তালিকাভুক্ত করতে $ বাক্স দ্বারা রেফারেন্সযুক্ত বাইনারি সম্পাদন করছি, তারপরে একটি তালিকা তৈরি এবং তারপরে তালিকার প্রতিটি আইটেমের জন্য, আমরা একটি ডিরেক্টরিতে একটি সিমিলিংক তৈরি করছি।

Izzy ব্যস্তবক্স বাইনারি জন্য সিমলিংক স্থাপন করার সবচেয়ে সোজা উপায়ের পরামর্শ দিয়েছেন

অ্যাডবি শেল / ডেটা / স্থানীয় / টিএমপি / ফাইল - ইনস্টল-গুলি / ডেটা / স্থানীয় / টিএমপি / # যথাযথ হিসাবে ফাইলটি প্রতিস্থাপন করুন। --install -s ডিরেক্টরিতে আপনার জন্য কাঙ্ক্ষিত সিমলিংক তৈরি করবে। ডিরেক্টরিটির পাশে এটি সরবরাহ করা হয়। 

এই সমস্ত সরঞ্জামগুলি এখন পরম পথ ব্যবহার করে অ্যাক্সেস করা যেতে পারে /data/local/tmp/TOOL। ইউটিলিটির নাম দিয়ে টোল প্রতিস্থাপন করুন। ফাইন্ড কমান্ড কল করার ব্যবহারের উদাহরণ:

adb shell /data/local/tmp/find --help
adb shell /data/local/tmp/FILE find --help   # alternative way of using a tool

ইন্টারেক্টিভ শেল সেশনের জন্য, আপনি এক্সপোর্ট কমান্ড ব্যবহার করে FILE এর অবস্থানটি $ PATH এ যুক্ত করতে পারেন:

PATH = / ডেটা / স্থানীয় / tmp রফতানি করুন: AT প্যাথ # এটি / PATH এর বিদ্যমান মানের মধ্যে উপাত্ত / ডেটা / স্থানীয় / tmp হয়। রফতানি নিশ্চিত করবে যে সাব-শেলগুলি একই মান $ PATH এ দেখবে

হয়ে গেছে, আপনি এখন এই পদ্ধতিতে সন্ধান বা অন্য কোনও ব্যাসিবক্স / টয়বক্স ইউটিলিটি ব্যবহার করতে পারেন:

এডিবি শেল 
- সাহায্য

এটা তোলে হয় উল্লেখ করা যে $ PATH- এ পরিবর্তন শুধু বর্তমান শেল সেশনের জন্য প্রযোজ্য। এর অর্থ হ'ল প্রতিবার আপনি যখন অ্যাডবি ব্যবহার করে শেল চালু করবেন তখন আপনাকে $ PATH রফতানি করতে হবে।

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

adb shell $lolcat   # $lolcat is a temporary variable in my shell on PC and it was assigned the value /system/xbin/toybox. My bash shell is replacing $lolcat with its value and then passing it to adb shell (or you can say, it first expanded the variable and then executed the whole command)

যে সরঞ্জামগুলি ব্যস্তবক্স এবং টয়বক্সে পাওয়া যায় না, সেগুলি আপনাকে অ্যান্ড্রয়েডের জন্য নিজেই তৈরি করতে হবে, যদি ইতিমধ্যে কারও দ্বারা নির্মিত না হয় এবং বিশ্বাসযোগ্য কোনও স্থানে পোস্ট করা হয় যা আপনি বিশ্বাস করতে পারেন, ডাউনলোড ও ইনস্টল করতে পারেন।
ফায়ারলর্ড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.