मैं एंड्रॉइड डिवाइस पर लापता कमांड लाइन टूल कैसे स्थापित कर सकता हूं?


9

एंड्रॉइड इंस्टॉलेशन में हमेशा वे सभी उपकरण नहीं होते हैं जिनकी एक यूनिक्स जैसी प्रणाली की अपेक्षा होती है।

उदाहरण के लिए, अभी मेरे पास एक समस्याग्रस्त डिवाइस है जिसमें findसीएलआई उपयोगिता नहीं है । मेरा मतलब है, यह वही है जो मुझे इसमें मिलता है adb shell:

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

इसके अलावा:

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

यह विशेष उपकरण एंड्रॉइड 5.0 (साथ ही एलजी द्वारा कुछ मालिकाना अतिरिक्त जोड़, मुझे लगता है) चल रहा है, लेकिन सवाल सभी एंड्रॉइड संस्करणों के लिए है, निश्चित रूप से।

क्या findएंड्रॉइड पर देशी / सीएलआई उपकरण (जैसे ) स्थापित करने के लिए एक मानक प्रक्रिया है? (एक पैकेज मैनेजर? ) और, वैसे भी, इसे सबसे सही तरीके से कैसे करें?



हां, यह उपकरण जड़ है। लेकिन अनियंत्रित-संगत तरीकों के बारे में जानना दिलचस्प है। :)
प्रदर्शन का नाम

जवाबों:


5

जड़ Android उपकरणों के लिए

आप स्टीफन द्वारा बिजीबॉक्स ऐप इंस्टॉल करने पर विचार कर सकते हैं । प्ले स्टोर से, ऐप द्वारा समर्थित न्यूनतम Android संस्करण Android 1.6 है और यह एक अच्छी तरह से अपडेट किया गया ऐप है। संक्षेप में, यह बिजीबॉक्स बाइनरी को स्थापित करता है /system/xbinऔर इसमें सभी उपयोगिताओं के लिए एक ही डायरेक्टरी में सिमिलिंक लगाता है।

क्या है बिजीबॉक्स (एप्लिकेशन नहीं)?

बिजीबॉक्स एक छोटे से निष्पादन योग्य में कई आम यूनिक्स उपयोगिताओं के छोटे संस्करणों को जोड़ती है। यह उन अधिकांश उपयोगिताओं के लिए प्रतिस्थापन प्रदान करता है जो आप आमतौर पर जीएनयू फाइलुटिल, शेल्यूटिल आदि में पाते हैं। बिजीबॉक्स में उपयोगिताओं में आम तौर पर उनके पूर्ण-चित्रित जीएनयू चचेरे भाई की तुलना में कम विकल्प होते हैं; हालाँकि, जो विकल्प शामिल हैं, वे अपेक्षित कार्यक्षमता प्रदान करते हैं और उनके GNU समकक्षों की तरह बहुत व्यवहार करते हैं। बिजीबॉक्स किसी भी छोटे या एम्बेडेड सिस्टम के लिए काफी संपूर्ण वातावरण प्रदान करता है।

यहाँ उपयोगिताओं की आधिकारिक सूची दी गई है। findउपकरण वहाँ पाया जा सकता है।

बिजीबॉक्स का एक सक्षम विकल्प टॉयबॉक्स है, जिसने मार्शमैलो रिलीज में टूलबॉक्स को बदल दिया है

टॉयबॉक्स क्या है ?

टॉयबॉक्स कई सामान्य लिनक्स कमांड लाइन उपयोगिताओं को एक साथ बीएसडी-लाइसेंस वाले निष्पादन योग्य में जोड़ती है। यह सरल, छोटा, तेज और यथोचित मानक-अनुपालन ( POSIX-2008 और LSB 4.1 ) है।

यहाँ उपयोगिताओं की आधिकारिक सूची है Toybox समर्थन करता है। वर्तमान में, व्यस्तबॉक्स, Toybox की तुलना में अधिक टूल का समर्थन करता है।

मुझे नहीं लगता कि टॉयबॉक्स बाइनरी को स्थापित करने के लिए कोई एप्लिकेशन मौजूद है, इसलिए आप इसकी स्थापना के उद्देश्य से मेरे उत्तर का उपयोग कर सकते हैं । ध्यान दें कि उत्तर का उपयोग टॉयबॉक्स और बिजीबॉक्स दोनों की स्थापना के लिए किया जा सकता है। केवल पूर्वापेक्षा आधिकारिक स्रोतों से बाइनरी डाउनलोड कर रही है।

आधिकारिक डाउनलोड लिंक:

गैर-निहित Android उपकरणों के लिए

मुझे नहीं पता कि सभी एंड्रॉइड संस्करणों के लिए एक सार्वभौमिक दृष्टिकोण है या नहीं। कहा कि, एंड्रॉइड 4.0 और अप के लिए बिजीबॉक्स इंस्टॉल (कोई रूट) काम करने का दावा नहीं करता है। कुछ टर्मिनल ऐप हो सकते हैं जो बिजीबॉक्स बाइनरी के साथ आते हैं। मैंने ऐसे किसी भी टर्मिनल ऐप का व्यक्तिगत रूप से परीक्षण नहीं किया है, लेकिन यह समझना आसान है कि उनकी सबसे बड़ी कमी है: आप उनका उपयोग करके कोई भी या बहुत अच्छा उपयोग नहीं कर सकते हैं

हालाँकि एक दृष्टिकोण है, जो 4.2 (मेरे परीक्षणों के आधार पर) के ऊपर किसी भी Android संस्करण के लिए काम करता प्रतीत होता है। /data/local/tmpएक निर्देशिका है जिसे shellउपयोगकर्ता द्वारा संपादित किया जा सकता है । adb shellआपको डिवाइस पर दूरस्थ शेल देता है और उसी उपयोगकर्ता के रूप में लॉगिन करता है।

आपको बस इतना करना है कि बिजीबॉक्स / टॉयबॉक्स बाइनरी में डाल दिया जाए /data/local/tmpऔर उसी डायरेक्टरी में यूटिलिटीज के लिए सिमिलिंक बनाएं। आप उसके लिए निम्न चरणों का उपयोग कर सकते हैं।

(आवश्यक है पीसी में सेटअप।)

adb पुश LOCAL_FILE / डेटा / स्थानीय / tmp / # PC में टॉयबॉक्स / बिजीबॉक्स बाइनरी की फ़ाइल पथ के साथ LOCAL_FILE बदलें
अदब का खोल
chmod 755 / data / local / tmp / FILE # पुश बाइनरी फाइल पर उचित अनुमति देना। पहले चरण में आपके द्वारा पुश किए गए बाइनरी के नाम के साथ फ़ाइल को बदलें। अनुशंसित है कि सभी निचले मामलों वाले अक्षरों के साथ एक शब्द के रूप में एक शब्द का उपयोग किया जाए
बॉक्स = / डेटा / स्थानीय / tmp / फ़ाइल # अगले चरण में उपयोग के लिए एक स्थानीय चर की स्थापना। उचित के रूप में फ़ाइल बदलें
$ बॉक्स | $ बॉक्स sed 's / \ / \ n / g' | $ बॉक्स sed '$ d' | पढ़ी जाने वाली पंक्ति; do $ box ln -sf / data / local / tmp / FILE / data / local / tmp / $ लाइन; किया # हम सभी उपयोगिताओं को सूचीबद्ध करने के लिए $ बॉक्स द्वारा संदर्भित बाइनरी को निष्पादित कर रहे हैं, एक सूची के निर्माण के बाद और फिर सूची में प्रत्येक आइटम के लिए, हम एक निर्देशिका में एक सिमलिंक बना रहे हैं।

इज़ीज़ी ने बिजीबॉक्स बाइनरी के लिए सीमलिंक लगाने के लिए सबसे सरल तरीके की सिफारिश की है ।

adb खोल / डेटा / स्थानीय / tmp / FILE - स्थापना / -s / डेटा / स्थानीय / tmp / # बदलें फ़ाइल उपयुक्त के रूप में। - स्थापना -s एक निर्देशिका में आप के लिए वांछित symlinks बनाएगा। इसके आगे डायरेक्टरी का रास्ता दिया गया है। 

उन सभी उपकरणों को अब निरपेक्ष पथ का उपयोग करके एक्सेस किया जा सकता है /data/local/tmp/TOOL। उपयोगिता नाम के साथ TOOL बदलें। कॉलिंग कमांड का उदाहरण उपयोग:

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

इंटरेक्टिव शेल सत्रों के लिए, आप निर्यात कमांड का उपयोग करके $ PATH में FILE का स्थान जोड़ सकते हैं:

निर्यात पथ = / डेटा / स्थानीय / tmp: $ PATH # यह $ PATH के मौजूदा मूल्य में उपसर्ग / डेटा / स्थानीय / tmp है। निर्यात सुनिश्चित करेगा कि उप-गोले $ PATH में समान मूल्य देखें

हो गया, अब आप इस तरह से किसी अन्य बिजीबॉक्स / टॉयबॉक्स उपयोगिता का उपयोग कर सकते हैं:

अदब का खोल 
खोज -

यह ध्यान दिया जाना चाहिए कि $ PATH में परिवर्तन केवल वर्तमान शेल सत्र के लिए लागू होते हैं। इसका मतलब है कि हर बार जब आप adb का उपयोग करके एक शेल लॉन्च करते हैं, तो आपको $ 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)

जो उपकरण बिजीबॉक्स और टॉयबॉक्स में नहीं पाए जाते हैं, आपको उन्हें खुद एंड्रॉइड के लिए बनाना होगा, अगर पहले से किसी के द्वारा नहीं बनाया गया है और एक भरोसेमंद स्थान पर पोस्ट किया गया है जिस पर आप भरोसा कर सकते हैं, डाउनलोड और इंस्टॉल कर सकते हैं।
फायरलॉर्ड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.