एक "./configure" फ़ाइल को चलाने के लिए adb "अनुमति अस्वीकृत"


9

मुझे configureअपने एंड्रॉइड फोन में एक फ़ाइल चलाने की आवश्यकता है, इसलिए मुझे लगता है कि ऐसा करने का सबसे अच्छा तरीका adb shellकमांड का उपयोग करना है ।

मैं विंडोज -7 प्लेटफॉर्म पर एंड्रॉइड एमुलेटर चला रहा हूं, और वहां मैं adb shellडॉस विंडो में कमांड चला रहा हूं । cdकमांड का उपयोग करके मैं उस निर्देशिका में बदल रहा हूं जहां मेरी configureफ़ाइल है, और फिर मैं निम्नलिखित कमांड निष्पादित कर रहा हूं ./configure:। मुझे निम्न त्रुटि मिल रही है:

./configure: permission denied

इसलिए मैं एडीबी को रूट मोड में चलाने की कोशिश करता हूं adb root- लेकिन जाहिर तौर पर मेरा एडीबी पहले से ही रूट मोड में है (इसके अलावा मेरे पास मेरे एडीबी शेल की प्रत्येक पंक्ति से पहले "#" अक्षर है)।

मैंने भी उपयोग करने की कोशिश की है, chmodलेकिन मुझे इस कमांड ( ls -la) को निष्पादित करने से पहले और बाद में कोई अंतर नहीं दिखता है , इसलिए शायद समस्या यहाँ है (मैं chmodकमांड कैसे चला सकता हूं ?)।

हो सकता है कि कोई व्यक्ति मेरे मुद्दे पर मेरी मदद कर सकता है, और यदि आपके पास इस बारे में कोई स्पष्टीकरण है कि मुझे अपनी configureफ़ाइल चलाने की अनुमति क्यों नहीं है तो यह बहुत अच्छा होगा।

धन्यवाद।

पुनश्च: मेरा लक्ष्य यहां सीधे एंड्रॉइड प्लेटफॉर्म पर नेट-स्नैम्प पैकेज का उपयोग करना है, इस प्रोजेक्ट के स्रोतों को सीधे प्लेटफॉर्म पर संकलित करके।


3
शायद यही समस्या है। /sdcardआमतौर पर noexecएंड्रॉइड में ध्वज के साथ मुहिम शुरू की जाती है, इसलिए आप इससे बायनेरिज़ को निष्पादित नहीं कर सकते। मैं इसे कहीं और ले जाने की कोशिश करने की सलाह दूंगा (अक्सर /data/localइस तरह की चीजों के लिए उपयोग किया जाता है)। देखें कि क्या समस्या हल होती है।
एल्डररैथिस

3
इसके अलावा, यह करने के लिए नकल /usr/local/tmpनिर्देशिका पूरे ( net-snmp-5.7.2निर्देशिका में /sdcard
लियाम डब्ल्यू

1
@ t0mm13b पूरी तरह सुनिश्चित नहीं हैं कि अगर यह है विषय बंद, के रूप में यह लोगों का फायदा उठाने के लिए अपने डिवाइस, पर एक फ़ाइल पर अमल करने की जरूरत है कि इस तरह के एक रूट के रूप में करने के लिए उपयोगी हो सकता है।
लियाम डब्ल्यू

1
ठीक है धन्यवाद। यहां मेरा प्रश्न अधिक था कि मैं एक विकास प्रश्न की तुलना में एडीबी शेल के साथ एक स्क्रिप्ट श को कैसे चला सकता हूं। लेकिन अब मेरे पास इसका हल है: "/ sdcard को noexec फ्लैग के साथ रखा गया है", इसलिए यदि एल्डररैथिस या लियाम डब्ल्यू अपनी टिप्पणी को एक वास्तविक जवाब में रखना चाहते हैं तो मैं इसे मान्य करूंगा। या शायद आप मुझे समझा सकते हैं कि मैं अपना प्रश्न कैसे बंद कर सकता हूं?
grattmandu03

1
@ grattmandu03 मेरे पास पहले से ही है;)
लियाम डब्ल्यू

जवाबों:


10

यह 2 चीजों के कारण है:

  1. फ़ाइल में निष्पादन की अनुमति नहीं है [और]
  2. फ़ाइल निष्पादन योग्य अनुमतियाँ प्राप्त नहीं कर सकता क्योंकि यह SD कार्ड पर है। एसडी कार्ड का फाइल सिस्टम फाइल की अनुमति को स्वीकार कर सकता है, हालांकि यह noexecध्वज के साथ लगाया जाता है , जैसा कि एक टिप्पणी में कहा गया है। यह निष्पादित की जा रही फ़ाइलों को रोकता है।

समाधान:

  1. net-snmp-5.7.2निर्देशिका के लिए /data/local/tmpनिर्देशिका को रूट के रूप में कॉपी करें ।
  2. configureफ़ाइल को chmod 0777 /data/local/tmp/net-snmp-5.7.2/configureरूट के रूप में चलाकर निष्पादन योग्य सेट करें ।
  3. अब आपको टाइपिंग /data/local/tmp/net-snmp-5.7.2/configureऔर एंटर दबाकर कॉन्फ़िगर स्क्रिप्ट निष्पादित करने में सक्षम होना चाहिए ।

ध्यान दें

यह सब रूट उपयोगकर्ता के रूप में किया जाना चाहिए :)


8

जैसा कि टिप्पणियों और लियाम के उत्तर द्वारा समझाया गया है , यह noexecsdcard बढ़ते समय सिस्टम द्वारा उपयोग किए गए ध्वज के कारण है । यदि आपकी configureफ़ाइल एक शेल स्क्रिप्ट है (जैसा कि आमतौर पर है), तो आप अभी भी इसे निष्पादित करने के लिए ट्रिक कर सकते हैं:

cdनिर्देशिका जैसा कि आपने ऊपर वर्णित किया है, और फिर निष्पादित करें sh configure

shशैल दुभाषिया है, और उस बाइनरी में स्थित होना चाहिए /system/bin, जहां फाइलों हैं निष्पादन योग्य। अपनी स्क्रिप्ट को पहले तर्क के रूप में पास करते हुए, यह एक नई शेल प्रक्रिया खोलेगी जो आपकी configureस्क्रिप्ट को निष्पादित करती है ।


आपके उत्तर के लिए धन्यवाद। sh configureकाम कर देता है।
grattmandu03

1
पुष्टि के लिए धन्यवाद! और खुशी है कि मैं मदद करने में सक्षम था। मैं समय-समय पर :) लिनक्स / यूनिक्स मशीनों पर इस चाल का उपयोग
इज़ी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.