অ্যান্ড্রয়েড শেলের নিজস্ব নির্বাহযোগ্য চালানো Run


14

আমার একটি নির্দিষ্ট কমান্ড লাইন সরঞ্জাম প্রয়োজন এবং আমি আমার লিনাক্স শেলটিতে একটি সি প্রোগ্রাম তৈরি করেছি। আমি একটি এআরএম ক্রস-সংকলক দিয়ে প্রোগ্রামটি সংকলন করেছি। আমি তখন প্রোগ্রামটি অ্যান্ড্রয়েড ফাইল সিস্টেমে স্থানান্তরিত করেছি এবং এটি চালানোর চেষ্টা করেছি।

আউটপুট অনুমতি অস্বীকার করা হয়।

অ্যান্ড্রয়েড ফাইল সিস্টেমে আমার নিজস্ব সংকলিত প্রোগ্রামগুলি চালানোর জন্য আমার কী করতে হবে?


চেষ্টা করা হয়েছে chmod +x pgmএবং তারপর ./pgmআরো?
অট--

8
সম্ভবত আপনি এটি আপনার এসডিকার্ডে রেখেছেন - যা noexecপতাকা দিয়ে মাউন্ট করা হয়েছে । হয় আপনি এটি ফোনের অভ্যন্তরীণ স্টোরেজে স্থানান্তরিত করতে হবে, বা এটি একটি শেল (উদাহরণস্বরূপ sh /path/to/myexecutable) এর মাধ্যমে চালনা করতে হবে ।
ইজি

উত্তর:


14

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

সুতরাং আপনাকে স্থানীয় ফাইল সিস্টেমে এক্সিকিউটেবলের অনুলিপি করতে হবে, যেমন / ডেটা / স্থানীয়। যদি ডিভাইসটি রুট না হয় বা আপনার ব্যাসিবক্স ইনস্টল না থাকে তবে "সিপি" কমান্ড থাকবে না। আপনি কেবল বিড়াল ব্যবহার করতে পারেন: cat /sdcard/myprog > /data/local/myprog

তারপরে আপনাকে এক্সিকিউটেবলের উপর এক্সিকিউটেবল অনুমতি সেট করতে হবে। অ্যান্ড্রয়েডে Chmod সাধারণত "u + x" সিনট্যাক্স সমর্থন করে না। অতএব আপনাকে কল করতে হবে chmod 555 /data/local/myprog

পরবর্তীতে আপনি আপনার এক্সিকিউটেবল নির্বাহ করতে পারেন: /data/local/myprog


আপনার উত্তরের জন্য Thx। আসলে সমস্যাটি বাইনারি জেনারেশনে ছিল। এটি সঠিকভাবে উত্পন্ন করা হচ্ছে না! ;)
নুনো সান্টোস

আমার ডিভাইসে আমার ব্যস্তবক্স রয়েছে, তবে এই আদেশটি: শেল @ n200C: / $ ব্যস্তবক্সে সিপি / স্টোরেজ / বহিরাগত_ স্টোরেজ / এসডিএ / ffmpeg / ডেটা / ------ ত্রুটি দেখায় = সিপি: '/ ডেটা / এফএফএমপিগ তৈরি করতে পারে না ': অনুমতি অস্বীকার করা হয়েছে
ডাঃ জ্যাকি

tmp-mksh: /data/local/workspace/clang+llvm-5.0.0-aarch64-linux-gnu/bin/clang++: No such file or directoryযদিও ফাইলটি উপস্থিত রয়েছে
নেকেতভি 8'18

/ ডেটা / স্থানীয় আমার ডিভাইসে রুট অ্যাক্সেস প্রয়োজন। পরিবর্তে / ডেটা / স্থানীয় / tmp ব্যবহার করুন
চ্যান Tzish

10

প্রথমত, আপনাকে এটি কোনও ডিরেক্টরিতে ঠেলাতে হবে, যেমন /data/local/tmp। তারপরে, আপনাকে এটি ব্যবহারের জন্য অনুমতি নির্ধারণ করতে হবে chmod 755 executable। এর পরে, আপনি এটি চালাতে পারেন ./executable

সম্পূর্ণ পদক্ষেপগুলি নিম্নরূপ:

অ্যাডবি পুশ এক্সিকিউটেবল / ডেটা / স্থানীয় / টিএমপি
এডিবি শেল
সিডি / ডেটা / স্থানীয় / টিএমপি
chmod 755 এক্সিকিউটেবল
./executable

বিকল্পভাবে, আপনি যদি এটি আপনার সম্পদ ফোল্ডার থেকে চালাতে চান তবে আপনাকে ফাইলটি আপনার ডেটা ফোল্ডারে অনুলিপি করতে হবে /data/data/packagename/। তারপরে Fileক্লাস ব্যবহার করে , ফাইলটির জন্য setExecutableপতাকা সেট trueকরুন এবং এটি প্রক্রিয়া শ্রেণি বা রুট সরঞ্জামের মতো তৃতীয় পক্ষের প্যাকেজগুলির দ্বারা চালিত করুন ।

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