नॉन रूटेड एंड्रॉइड 5 लॉलीपॉप डिवाइस पर इंस्टॉलेशन स्थान


12

मेरे पास इस पर Android 5.02 के साथ Moto G (2nd जनरेशन) है। आंतरिक एसडी कार्ड लगभग 8 जीबी है और मेरे पास 16 जीबी मुक्त स्थान के साथ एक बाहरी एसडी कार्ड है।

एप्लिकेशन के मेनू से SDCARD में एप्लिकेशन ले जाना इसे sdcard0 पर ले जाता है जो आंतरिक एसडी कार्ड है।

अदब शेल कमांड:

pm get-install-location

मुझे देता है:

0[auto]

मैंने इसके माध्यम से स्थापना स्थान निर्धारित करने का प्रयास किया:

pm set-install-location 2

लेकिन मुझे यह त्रुटि मिल रही है:

Error: java.lang.SecurityException: Package android does not belong to 2000

मेरा मानना ​​है कि रूट अनुमतियों के बारे में शिकायत करना।

और क्योंकि यह उत्पादन की कोशिश कर रहा है:

adb root

मुझे देता है:

 adbd cannot run as root in production builds

क्या अनुप्रयोगों को सेट करने का कोई तरीका है कि वे अपना डेटा बाहरी एसडी कार्ड में स्थापित करें?

पुनश्च: मैं कस्टम रोम स्थापित करने या फ़ोन को रूट करने के लिए थर्ड पार्टी सॉफ़्टवेयर स्थापित नहीं करना चाहता।

संपादित करें: मैंने देखा है कि एप्लिकेशन डेटा को फ़ोल्डर में संग्रहीत किया गया था /storage/sdcard0/Android, इसलिए मैंने इस फ़ोल्डर को /storage/sdcard1/इस तरह से स्थानांतरित करने और इसके बजाय एक सिमलिंक बनाने के बारे में सोचा :

ln -s /storage/sdcard1/Android /storage/sdcard0/Android

क्या यह काम करेगा?

धन्यवाद।

जवाबों:


10

असल में बोलना: आप नहीं कर सकते। कम से कम जड़ के बिना नहीं ।
एंड्रॉइड के मुख्य कारण आपको अपने बाहरी एसडी कार्ड के लिए एप्लिकेशन इंस्टॉल करने की अनुमति नहीं देते हैं:

  1. सुरक्षा : यह उस प्रतिबंध का मुख्य कारण है। मूल फ़ाइल सिस्टम जैसे NTFS या FAT (इसका कोई भी संस्करण) यूनिक्स की तरह अनुमति प्रबंधन के लिए अनुमति नहीं देता है।
    इसका मतलब है: कोई भी एप्लिकेशन उस स्टोरेज पर किसी भी फाइल को लिख सकेगा ।
    दुर्भावनापूर्ण ऐप्स के बारे में सोचते हुए, वे उचित ऐप्स को नकली / संक्रमित लोगों के साथ बदलने में सक्षम होंगे, जो आपके फोन को ईंट कर देंगे और इसे अनुपयोगी बना देंगे।

  2. वाष्पशील भंडारण : आपका बाहरी एसडी कार्ड आपके डिवाइस में हर समय डाला जाना सुरक्षित नहीं है। आप इसे किसी भी समय अस्वीकार कर सकते हैं जो आपके एसडी कार्ड को स्थायी भंडारण के लिए बहुत अच्छा उम्मीदवार नहीं बनाता है। अपने एसडी कार्ड से चलने वाले ऐप्स पर विचार करें और आप इसे अस्वीकार कर दें। वे ऐप बस दुर्घटनाग्रस्त हो जाएंगे और आपके एसडी कार्ड में सहेजे गए अन्य सभी ऐप भी चले गए हैं। आप उस समय उनका उपयोग नहीं कर सकते हैं और उन ऐप का डेटा भी कारण # 1 से प्रभावित होता है।


मेरे पास एक लिनक्स पृष्ठभूमि है, इसलिए मैंने इस दृष्टिकोण पर विचार किया है: मैंने देखा है कि एप्लिकेशन के मेनू विकल्प "मूव टू एसडीकार्ड" में एक फ़ोल्डर बनाया गया था, जिसका नाम sdcard0 (आंतरिक एक) है, जिस पर एप्लिकेशन डेटा है; एंड्रॉइड को sdcard1 काम में एंड्रॉइड नामक एक फ़ोल्डर में एक सिम्लिंक (sdcard0 में) बना देगा?
pr.nizar

मुद्दा यह है: एंड्रॉइड केवल एप्लिकेशन डेटा को स्टोर करता है और में obb करता है /sdcard/sdcard0/Android। एप्लिकेशन को एक छिपे हुए फ़ोल्डर में संग्रहीत किया जाता है, .android_secureजहां rootपहुंच भी नहीं है (मैंने अपने डिवाइस पर इसका परीक्षण किया, आप cdउस फ़ोल्डर में भी नहीं जा सकते हैं )।
जाइंटट्री

वास्तव में यह वही है जो मुझे चाहिए! मुख्य समस्या मुझे यह सोचकर हो रही है कि यह डेटा विशेष रूप से भारी गेम के साथ है .. मुख्य एप्लिकेशन उस डेटा की तुलना में बड़े नहीं हैं जो वे बाद में जोड़ते हैं। तो आपको लगता है कि यह काम कर सकता है?
pr.nizar

यदि यह केवल डेटा या obb है तो यह निश्चित रूप से काम करता है। कम से कम एंड्रॉइड संस्करणों पर sdcard_rwजो rootसमूह से संबंधित नहीं हैं या उपयोगकर्ता sdcard_rwको बिल्कुल भी सुविधा नहीं देते हैं । लेकिन थोड़े से अनुमति परिवर्तन के साथ आप उस छँटनी में सक्षम होना चाहिए।
GiantTree

रनिंग ls -l /storage/sdcard0ने मुझे यह दिया lrwxrwxrwx root root 2015-04-20 15:59 sdcard0 -> /storage/emulated/legacyऔर रनिंग ने मुझे यह ls -l /storage/sdcard0/दिया है drwxrwx--x root sdcard_r 2014-12-20 18:16 Android.. क्या यह अच्छी या बुरी खबर है? चूंकि मैं जड़ नहीं हूं, मेरा मानना ​​है कि मैं अनुमति नहीं दे सकता।
प्र.निज़र २०'१५ को १

6

मूल रूप से आप कर सकते हैं! ;)

  • सबसे पहले, अपने फोन को रूट करें!
  • दूसरा, अपने SD कार्ड (Ext.4) = 2GB में एक द्वितीयक विभाजन बनाएँ और इसे प्राथमिक के रूप में सेट करें।
  • तीसरा, playstore से Link2sd ऐप डाउनलोड और इंस्टॉल करें। एप्लिकेशन खोलें, और मैं आपको अपने 2 डी विभाजन के लिए एक माउंट बिंदु बनाने के लिए कहूंगा। हाँ का चयन करें। रीबूट।

रिबूट के बाद, आप जो भी ऐप इंस्टॉल करेंगे, वह अपने आप एसडी कार्ड में चला जाएगा।

अगर आपको नहीं पता कि Google में एक गाइड के लिए विभाजन खोज कैसे बनाई जाए तो उनमें से बहुत सारे हैं


कि वास्तव में मैं क्या बचने की कोशिश कर रहा हूं: थर्ड पार्टी सॉफ्टवेयर इंस्टॉल करना। :-)
pr.nizar

4

यह एक यात्रा थी जिसमें उत्तर देने के लिए खोज शामिल थी, लेकिन मैं इसे समाप्त नहीं करता था:

  1. मेरे बूटलोडर को अनलॉक करना

  2. इसे स्थापित किए बिना TWRP पर बूट करना:

    fastboot boot recovery.img
    
  3. TWRP के साथ चैनफायर के SuperSU को स्थापित करना ।

  4. से टर्मिनल एमुलेटर या एशियाई विकास बैंक के खोल:

    su
    pm set-install-location 2
    
  5. एक अनुप्रयोग के मेनू से Settings > Applicationsबस धकेलने में Move to SDCARDयह चलता है * - इसका डेटा और obb - बाहरी SDCARD के लिए।

  6. सुपरसु को निकालकर ......

फुल अनरूट

नहीं ... मैंने ऐसा नहीं किया! 3 :)


0

इस पते पर जाएं http://developer.android.com/tools/help/shell.html#shellcommands

Android 5 और इसके बाद का संस्करण इसका समर्थन नहीं करता है pm get-install-location

अपने एपीके का बैकअप लेने की कोशिश करें और स्टेप्स का पालन करें

adb shell pm install -r -s <path of your apk>

उदाहरण

adb shell pm install -r -s /storage/sdcard1/base.apk

-r का अर्थ है मौजूदा डेटा के साथ APK को पुनर्स्थापित करना और -s का मतलब है sdcard


" एंड्रॉइड 5 और इसके बाद के संस्करण इस शाम को गेट-इंस्टॉल-लोकेशन का समर्थन नहीं करते हैं " - आप कैसे जानते हैं? इसे आज़माएँ: android.googlesource.com/platform/frameworks/base/+/… । यह एंड्रॉयड 5.1.1 के लिए है। मुझे अपने एंड्रॉइड 5.0.2, 5.1.1 और 6.0.1 में इस तर्क का समर्थन है!
Firelord


-1

सबसे पहले Adbd असुरक्षित स्थापित करें (xda- डेवलपर्स से एपीके डाउनलोड करें )।

एक बार आपके डिवाइस पर स्थापित होने के बाद, इसे खोलें और बॉक्स को चिह्नित करें: "असुरक्षित एडबर्ड सक्षम करें"।

अब आप अपने ऐप्स इंस्टॉल करने के लिए स्थान बदल सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.