এটি একটি পুরানো প্রশ্ন, তবে আমি সম্প্রতি এই সম্পর্কে আগ্রহী ছিলাম। আমি এমন একটি পদ্ধতি পেয়েছি যার পুনরায় সংশোধন করার প্রয়োজন নেই adbd
, তবে এটির প্রয়োজন নেই su
(আমি চেইনফায়ার সুপারসু ২.৪৫ ব্যবহার করছি)।
ধরে নেওয়া bash
হয় এটি অবস্থিত /system/bin/bash
, এবং su
এ রয়েছে /system/xbin/su
, এটি মূলত এরকম কিছু:
adb shell
(একটি ইন্টারেক্টিভ শেল ব্যবহার করুন this এই প্রক্রিয়াটিকে ওয়ান-লাইনার হিসাবে চালিত করার ফলে যদি সমস্যা হয় তবে এডিবি কাজ বন্ধ করে দিতে পারে)
mount -o remount,rw /system
mv /system/bin/sh /system/bin/sh.bak
echo -e '#!/system/bin/bash\n/system/xbin/su -mm -l -s /system/xbin/bash' > /system/bin/sh
মনে রাখবেন যে আপনার পথগুলি পৃথক হতে পারে; ব্যবহার which bash
এবং which su
নিশ্চিত করা।
chmod 777 /system/bin/sh
- শেল পরীক্ষার আগে বেরিয়ে:
/system/bin/sh
। আপনি যদি কোনো ত্রুটি পেলে, ব্যাকআপ অবস্থায় ফিরিয়ে নেওয়ার মাধ্যমে ত্রুটি বা প্রত্যাবর্তন ঠিক: cp /system/bin/sh.bak /system/bin/sh
।
- Ptionচ্ছিকভাবে পুনরায় মাউন্ট / সিস্টেম; বেশিরভাগ ডিভাইস স্বয়ংক্রিয়ভাবে এটি করবে:
mount -o remount,ro /system
এবং তুমি করে ফেলেছ.
BASH- কে কেবল এসএইচ-তে সিলেক্ট করা কাজ করে না কারণ বাশ যখন এইভাবে ডাকা হয় তখন এসএকে এমুলেট করে।
যাইহোক, স্ট্রের দিকে একবার নজর রেখে, এটি bashrc
যখন সিমলিংকৃত বেসকে 'শ - লগিন' নামে ডাকা হয় তখন এটি সন্ধান করার মতো মনে হয় । যদিও এটি স্ক্রিপ্টের মাধ্যমে "চেইনলোড" শেল ব্যবহার করা যেতে পারে, যেমন উপরে বর্ণিত adbd
এসএইচকে হার্ডকোড করা হয়েছে above
যদি সমস্যা হয় এবং আপনি সমস্যাটি সমাধানের জন্য /system/bin/sh
ADB তে কোনও শেল রাখবেন না (তবে সরানো হয়েছে) have যদি এটি হয় তবে আপনার কাছে কয়েকটি বিকল্প রয়েছে:
- পুনরুদ্ধার করুন যা
adbd
(যেমন সিডাব্লুএম বা টিডব্লিউআরপি) রয়েছে এবং এটিতে একটি অ্যাডবি শেল খুলুন, / সিস্টেমে / বিন / শ.বাককে আবার / সিস্টেম / বিন / এস-তে অনুলিপি করতে।
- ব্যাকআপটি অনুলিপি করতে অ্যাডবি ব্যবহার করুন:
adb root; adb remount; adb shell; adb pull /system/bin/sh.bak; adb push sh.bak /system/bin/sh
নোট করুন যে এটি সমস্ত ডিভাইসে কাজ করবে না; কেউ কেউ এইভাবে অ্যাডাবিকে পুনরায় মাউন্ট / সিস্টেম আরডব্লিউ করতে দেয় না।
- একটি টার্মিনাল এমুলেটর ব্যবহার করুন যা আলাদা শেল চালানোর জন্য সেট করা যেতে পারে; লক্ষ্য করুন যে বেশিরভাগ প্রথমে / সিস্টেম / বিন / শ চেষ্টা করবে এবং জোর করে বন্ধ করবে।
sh
নাbash
। আপনি কোন বিল্ড ব্যবহার করছেন?