জাইগোট হল অ্যান্ড্রয়েড অপারেটিং সিস্টেমের একটি প্রক্রিয়া যা একই অ্যাপ্লিকেশন বাইনারি ইন্টারফেস (ABI) সহ সমস্ত সিস্টেম এবং অ্যাপ প্রক্রিয়ার মূল হিসাবে কাজ করে।
আধুনিক ডিভাইসে, যেমন পিক্সেল 7 এবং পরবর্তীতে, একটি 64-বিট জাইগোট প্রক্রিয়া রয়েছে। এছাড়াও, প্রাথমিক ABI-এর জন্য WebView Zygote আছে, যা একটি বিশেষ জাইগোট যাতে লাইব্রেরি এবং রিসোর্স থাকে নির্দিষ্ট প্রক্রিয়াগুলির জন্য যা WebViews চালায়।
জাইগোট যে কাজগুলো করে তা এখানে রয়েছে:
যখন Android OS আরম্ভ করা হয় তখন init ডেমন জাইগোট প্রক্রিয়ার জন্ম দেয়। কিছু দ্বৈত আর্কিটেকচার সিস্টেমে, দুটি জাইগোট প্রক্রিয়া (একটি 64-বিট এবং 32-বিট) তৈরি হয়। এই পৃষ্ঠাটি শুধুমাত্র একক আর্কিটেকচার সিস্টেম কভার করে।
জাইগোট অবিলম্বে আনস্পেশালাইজড অ্যাপ প্রসেস (ইউএসএপি) নামক প্রসেস তৈরি করতে পারে বা অ্যাপ্লিকেশনের প্রয়োজন অনুযায়ী প্রসেস তৈরির জন্য অপেক্ষা করতে পারে। পূর্ববর্তী বিকল্পটি একটি সিস্টেম সম্পত্তি বা Android ডিবাগ ব্রিজ কমান্ডের মাধ্যমে সক্রিয় করা আবশ্যক। জাইগোটকে অবিলম্বে প্রসেস তৈরি করতে কনফিগার করার বিষয়ে আরও তথ্যের জন্য, বিশেষায়িত অ্যাপ প্রসেস পুল সক্ষম করুন দেখুন।
যদি আপনার ডিভাইসে USAP পুল সক্ষম করা থাকে:
- সিস্টেম সার্ভার একটি ইউনিক্স ডোমেইন সকেট ব্যবহার করে একটি পুল থেকে উপলব্ধ ইউএসএপি-তে সংযোগ করতে। সিস্টেম সার্ভার অনুরোধ করে যে ইউএসএপি প্রসেসের আইডি (পিআইডি), সিগ্রুপ এবং অন্যান্য তথ্য পরিবর্তন করে অ্যাপ্লিকেশন ব্যবহারের জন্য পূর্বে কনফিগার করা হয়েছে।
- যখন ইউএসএপি প্রি-কনফিগার করা হয়, তখন এটি পিআইডি সহ সিস্টেম সার্ভারে উত্তর দেয়।
- যখন একটি অ্যাপ্লিকেশন এই ইউএসএপিগুলির একটি দখল করে, তখন ইউএসএপি আর পুলের অংশ থাকে না। যখন পুলটি পুলে এক বা তার কম ইউএসএপিতে পৌঁছায়, তখন জাইগোট পুলটিকে নতুন ইউএসএপি দিয়ে পূরণ করে।
যদি আপনার জাইগোট অলস মূল্যায়ন ব্যবহার করে প্রক্রিয়া তৈরি করে:
- সিস্টেম সার্ভার একটি কমান্ড পায় যে একটি অ্যাপ্লিকেশন একটি প্রক্রিয়া প্রয়োজন.
- সিস্টেম সার্ভার উপযুক্ত জাইগোটে একটি কমান্ড পাঠাতে একটি ইউনিক্স ডোমেইন সকেট ব্যবহার করে।
- জাইগোট প্রক্রিয়াটিকে ফর্ক করে এবং PID, cgroup এবং অন্যান্য তথ্য পরিবর্তন করে।
- প্রক্রিয়াটি সম্পূর্ণ হলে, এটি PID-কে Zygote-এ ফেরত পাঠায় যা তারপর সিস্টেম সার্ভারে ফেরত পাঠায়।
ইউএসএপি পুল সক্ষম করুন
ইউএসএপি পুল ব্যবহার সক্ষম করতে, নিম্নলিখিতগুলির মধ্যে একটি করুন:
dalvik.vm.usap_pool_enabled
সিস্টেম প্রপার্টি/build/make/target/product/runtime_libart.mk
এtrue
সেট করুন।নিম্নলিখিত কমান্ড চালান:
adb shell am broadcast -a \"com.google.android.gms.phenotype.FLAG_OVERRIDE\" --es package \"com.google.android.platform.runtime_native\" --es user \"\*\" --esa flags \"usap_pool_enabled\" --esa values \"true\" --esa types \"string\" com.google.android.gms
এই বৈশিষ্ট্যটি সক্ষম হলে, প্রতিটি জাইগোট কাঁটাযুক্ত প্রক্রিয়াগুলির একটি পুল বজায় রাখে যা অ্যাপ্লিকেশন স্টার্টআপ প্রক্রিয়ার অ্যাপ্লিকেশন-স্বাধীন অংশগুলি সম্পাদন করে।
জাইগোট সমস্যা সমাধান করুন
এই বিভাগে জাইগোট-সম্পর্কিত সমস্যার সমাধান রয়েছে।
জাইগোট বিধ্বস্ত হচ্ছে
যদি আপনার ডিভাইসটি সঠিকভাবে রিবুট না হয় এবং আপনার লগ বা ক্র্যাশ রিপোর্টগুলি Zygote এর সাথে সমস্যা দেখায়, তাহলে সম্ভবত আপনি একটি সাম্প্রতিক পরিবর্তন করেছেন যা initd বা সিস্টেম সার্ভার ক্র্যাশ করে। আপনার কোড ঠিক করা সমস্যা সমাধান করা উচিত.
SELinux অস্বীকার বা IO ব্যর্থতা
জাইগোট প্রক্রিয়ার সীমানা জুড়ে ফাইল বর্ণনাকারী স্বাস্থ্যবিধি সম্পর্কে বিশেষ। যখন ফাইল বর্ণনাকারী ফর্ক টাইমে উপস্থিত থাকে কিন্তু অনুমোদিত তালিকায় না থাকে, তখন নতুন খোলা ফাইলগুলি অ্যাক্সেস করার জন্য ক্যাশে করা ফাইল বর্ণনাকারীকে অনিচ্ছাকৃতভাবে ব্যবহার করা থেকে বিরত রাখতে আমরা /dev/null
এ একটি dup
সিস্টেম কল ব্যবহার করি।
আপনি যদি জাইগোটে রিসোর্স লোড করার চেষ্টা করে এবং আপনি SELinux অস্বীকৃতি বা IO ব্যর্থতা পান তাহলে ফ্রেমওয়ার্ক পরিবর্তন করছেন:
নামহীন ফাইল বর্ণনাকারীর জন্য, যখন
Restat
কল করা হয় তখনfds_to_ignore
ভেক্টরে ফাইল বর্ণনাকারী অন্তর্ভুক্ত করুন।নামযুক্ত ফাইল বর্ণনাকারীদের জন্য:
-
WORKING_DIRECTORY /frameworks/base/core/jni/fd_utils.cpp
সম্পাদনা করুন। - খোলা ফাইলগুলির জন্য অনুমোদিত তালিকায় পাথ যোগ করুন।
-
জাইগোট হল অ্যান্ড্রয়েড অপারেটিং সিস্টেমের একটি প্রক্রিয়া যা একই অ্যাপ্লিকেশন বাইনারি ইন্টারফেস (ABI) সহ সমস্ত সিস্টেম এবং অ্যাপ প্রক্রিয়ার মূল হিসাবে কাজ করে।
আধুনিক ডিভাইসে, যেমন পিক্সেল 7 এবং পরবর্তীতে, একটি 64-বিট জাইগোট প্রক্রিয়া রয়েছে। এছাড়াও, প্রাথমিক ABI-এর জন্য WebView Zygote আছে, যা একটি বিশেষ জাইগোট যাতে লাইব্রেরি এবং রিসোর্স থাকে নির্দিষ্ট প্রক্রিয়াগুলির জন্য যা WebViews চালায়।
জাইগোট যে কাজগুলো করে তা এখানে রয়েছে:
যখন Android OS আরম্ভ করা হয় তখন init ডেমন জাইগোট প্রক্রিয়ার জন্ম দেয়। কিছু দ্বৈত আর্কিটেকচার সিস্টেমে, দুটি জাইগোট প্রক্রিয়া (একটি 64-বিট এবং 32-বিট) তৈরি হয়। এই পৃষ্ঠাটি শুধুমাত্র একক আর্কিটেকচার সিস্টেম কভার করে।
জাইগোট অবিলম্বে আনস্পেশালাইজড অ্যাপ প্রসেস (ইউএসএপি) নামক প্রসেস তৈরি করতে পারে বা অ্যাপ্লিকেশনের প্রয়োজন অনুযায়ী প্রসেস তৈরির জন্য অপেক্ষা করতে পারে। পূর্ববর্তী বিকল্পটি একটি সিস্টেম সম্পত্তি বা Android ডিবাগ ব্রিজ কমান্ডের মাধ্যমে সক্রিয় করা আবশ্যক। জাইগোটকে অবিলম্বে প্রসেস তৈরি করতে কনফিগার করার বিষয়ে আরও তথ্যের জন্য, বিশেষায়িত অ্যাপ প্রসেস পুল সক্ষম করুন দেখুন।
যদি আপনার ডিভাইসে USAP পুল সক্ষম করা থাকে:
- সিস্টেম সার্ভার একটি ইউনিক্স ডোমেইন সকেট ব্যবহার করে একটি পুল থেকে উপলব্ধ ইউএসএপি-তে সংযোগ করতে। সিস্টেম সার্ভার অনুরোধ করে যে ইউএসএপি প্রসেসের আইডি (পিআইডি), সিগ্রুপ এবং অন্যান্য তথ্য পরিবর্তন করে অ্যাপ্লিকেশন ব্যবহারের জন্য পূর্বে কনফিগার করা হয়েছে।
- যখন ইউএসএপি প্রি-কনফিগার করা হয়, তখন এটি পিআইডি সহ সিস্টেম সার্ভারে উত্তর দেয়।
- যখন একটি অ্যাপ্লিকেশন এই ইউএসএপিগুলির একটি দখল করে, তখন ইউএসএপি আর পুলের অংশ থাকে না। যখন পুলটি পুলে এক বা তার কম ইউএসএপিতে পৌঁছায়, তখন জাইগোট পুলটিকে নতুন ইউএসএপি দিয়ে পূরণ করে।
যদি আপনার জাইগোট অলস মূল্যায়ন ব্যবহার করে প্রক্রিয়া তৈরি করে:
- সিস্টেম সার্ভার একটি কমান্ড পায় যে একটি অ্যাপ্লিকেশন একটি প্রক্রিয়া প্রয়োজন.
- সিস্টেম সার্ভার উপযুক্ত জাইগোটে একটি কমান্ড পাঠাতে একটি ইউনিক্স ডোমেইন সকেট ব্যবহার করে।
- জাইগোট প্রক্রিয়াটিকে ফর্ক করে এবং PID, cgroup এবং অন্যান্য তথ্য পরিবর্তন করে।
- প্রক্রিয়াটি সম্পূর্ণ হলে, এটি PID-কে Zygote-এ ফেরত পাঠায় যা তারপর সিস্টেম সার্ভারে ফেরত পাঠায়।
ইউএসএপি পুল সক্ষম করুন
ইউএসএপি পুল ব্যবহার সক্ষম করতে, নিম্নলিখিতগুলির মধ্যে একটি করুন:
dalvik.vm.usap_pool_enabled
সিস্টেম প্রপার্টি/build/make/target/product/runtime_libart.mk
এtrue
সেট করুন।নিম্নলিখিত কমান্ড চালান:
adb shell am broadcast -a \"com.google.android.gms.phenotype.FLAG_OVERRIDE\" --es package \"com.google.android.platform.runtime_native\" --es user \"\*\" --esa flags \"usap_pool_enabled\" --esa values \"true\" --esa types \"string\" com.google.android.gms
এই বৈশিষ্ট্যটি সক্ষম হলে, প্রতিটি জাইগোট কাঁটাযুক্ত প্রক্রিয়াগুলির একটি পুল বজায় রাখে যা অ্যাপ্লিকেশন স্টার্টআপ প্রক্রিয়ার অ্যাপ্লিকেশন-স্বাধীন অংশগুলি সম্পাদন করে।
জাইগোট সমস্যা সমাধান করুন
এই বিভাগে জাইগোট-সম্পর্কিত সমস্যার সমাধান রয়েছে।
জাইগোট বিধ্বস্ত হচ্ছে
যদি আপনার ডিভাইসটি সঠিকভাবে রিবুট না হয় এবং আপনার লগ বা ক্র্যাশ রিপোর্টগুলি Zygote এর সাথে সমস্যা দেখায়, তাহলে সম্ভবত আপনি একটি সাম্প্রতিক পরিবর্তন করেছেন যা initd বা সিস্টেম সার্ভার ক্র্যাশ করে। আপনার কোড ঠিক করা সমস্যা সমাধান করা উচিত.
SELinux অস্বীকার বা IO ব্যর্থতা
জাইগোট প্রক্রিয়ার সীমানা জুড়ে ফাইল বর্ণনাকারী স্বাস্থ্যবিধি সম্পর্কে বিশেষ। যখন ফাইল বর্ণনাকারী ফর্ক টাইমে উপস্থিত থাকে কিন্তু অনুমোদিত তালিকায় না থাকে, তখন নতুন খোলা ফাইলগুলি অ্যাক্সেস করার জন্য ক্যাশে করা ফাইল বর্ণনাকারীকে অনিচ্ছাকৃতভাবে ব্যবহার করা থেকে বিরত রাখতে আমরা /dev/null
এ একটি dup
সিস্টেম কল ব্যবহার করি।
আপনি যদি জাইগোটে রিসোর্স লোড করার চেষ্টা করে এবং আপনি SELinux অস্বীকৃতি বা IO ব্যর্থতা পান তাহলে ফ্রেমওয়ার্ক পরিবর্তন করছেন:
নামহীন ফাইল বর্ণনাকারীর জন্য, যখন
Restat
কল করা হয় তখনfds_to_ignore
ভেক্টরে ফাইল বর্ণনাকারী অন্তর্ভুক্ত করুন।নামযুক্ত ফাইল বর্ণনাকারীদের জন্য:
-
WORKING_DIRECTORY /frameworks/base/core/jni/fd_utils.cpp
সম্পাদনা করুন। - খোলা ফাইলগুলির জন্য অনুমোদিত তালিকায় পাথ যোগ করুন।
-
জাইগোট হল অ্যান্ড্রয়েড অপারেটিং সিস্টেমের একটি প্রক্রিয়া যা একই অ্যাপ্লিকেশন বাইনারি ইন্টারফেস (ABI) সহ সমস্ত সিস্টেম এবং অ্যাপ প্রক্রিয়ার মূল হিসাবে কাজ করে।
আধুনিক ডিভাইসে, যেমন পিক্সেল 7 এবং পরবর্তীতে, একটি 64-বিট জাইগোট প্রক্রিয়া রয়েছে। এছাড়াও, প্রাথমিক ABI-এর জন্য WebView Zygote আছে, যা একটি বিশেষ জাইগোট যাতে লাইব্রেরি এবং রিসোর্স থাকে নির্দিষ্ট প্রক্রিয়াগুলির জন্য যা WebViews চালায়।
জাইগোট যে কাজগুলো করে তা এখানে রয়েছে:
যখন Android OS আরম্ভ করা হয় তখন init ডেমন জাইগোট প্রক্রিয়ার জন্ম দেয়। কিছু দ্বৈত আর্কিটেকচার সিস্টেমে, দুটি জাইগোট প্রক্রিয়া (একটি 64-বিট এবং 32-বিট) তৈরি হয়। এই পৃষ্ঠাটি শুধুমাত্র একক আর্কিটেকচার সিস্টেম কভার করে।
জাইগোট অবিলম্বে আনস্পেশালাইজড অ্যাপ প্রসেস (ইউএসএপি) নামক প্রসেস তৈরি করতে পারে বা অ্যাপ্লিকেশনের প্রয়োজন অনুযায়ী প্রসেস তৈরির জন্য অপেক্ষা করতে পারে। পূর্ববর্তী বিকল্পটি একটি সিস্টেম সম্পত্তি বা Android ডিবাগ ব্রিজ কমান্ডের মাধ্যমে সক্রিয় করা আবশ্যক। জাইগোটকে অবিলম্বে প্রসেস তৈরি করতে কনফিগার করার বিষয়ে আরও তথ্যের জন্য, বিশেষায়িত অ্যাপ প্রসেস পুল সক্ষম করুন দেখুন।
যদি আপনার ডিভাইসে USAP পুল সক্ষম করা থাকে:
- সিস্টেম সার্ভার একটি ইউনিক্স ডোমেইন সকেট ব্যবহার করে একটি পুল থেকে উপলব্ধ ইউএসএপি-তে সংযোগ করতে। সিস্টেম সার্ভার অনুরোধ করে যে ইউএসএপি প্রসেসের আইডি (পিআইডি), সিগ্রুপ এবং অন্যান্য তথ্য পরিবর্তন করে অ্যাপ্লিকেশন ব্যবহারের জন্য পূর্বে কনফিগার করা হয়েছে।
- যখন ইউএসএপি প্রি-কনফিগার করা হয়, তখন এটি পিআইডি সহ সিস্টেম সার্ভারে উত্তর দেয়।
- যখন একটি অ্যাপ্লিকেশন এই ইউএসএপিগুলির একটি দখল করে, তখন ইউএসএপি আর পুলের অংশ থাকে না। যখন পুলটি পুলে এক বা তার কম ইউএসএপিতে পৌঁছায়, তখন জাইগোট পুলটিকে নতুন ইউএসএপি দিয়ে পূরণ করে।
যদি আপনার জাইগোট অলস মূল্যায়ন ব্যবহার করে প্রক্রিয়া তৈরি করে:
- সিস্টেম সার্ভার একটি কমান্ড পায় যে একটি অ্যাপ্লিকেশন একটি প্রক্রিয়া প্রয়োজন.
- সিস্টেম সার্ভার উপযুক্ত জাইগোটে একটি কমান্ড পাঠাতে একটি ইউনিক্স ডোমেইন সকেট ব্যবহার করে।
- জাইগোট প্রক্রিয়াটিকে ফর্ক করে এবং PID, cgroup এবং অন্যান্য তথ্য পরিবর্তন করে।
- প্রক্রিয়াটি সম্পূর্ণ হলে, এটি PID-কে Zygote-এ ফেরত পাঠায় যা তারপর সিস্টেম সার্ভারে ফেরত পাঠায়।
ইউএসএপি পুল সক্ষম করুন
ইউএসএপি পুল ব্যবহার সক্ষম করতে, নিম্নলিখিতগুলির মধ্যে একটি করুন:
dalvik.vm.usap_pool_enabled
সিস্টেম প্রপার্টি/build/make/target/product/runtime_libart.mk
এtrue
সেট করুন।নিম্নলিখিত কমান্ড চালান:
adb shell am broadcast -a \"com.google.android.gms.phenotype.FLAG_OVERRIDE\" --es package \"com.google.android.platform.runtime_native\" --es user \"\*\" --esa flags \"usap_pool_enabled\" --esa values \"true\" --esa types \"string\" com.google.android.gms
এই বৈশিষ্ট্যটি সক্ষম হলে, প্রতিটি জাইগোট কাঁটাযুক্ত প্রক্রিয়াগুলির একটি পুল বজায় রাখে যা অ্যাপ্লিকেশন স্টার্টআপ প্রক্রিয়ার অ্যাপ্লিকেশন-স্বাধীন অংশগুলি সম্পাদন করে।
জাইগোট সমস্যা সমাধান করুন
এই বিভাগে জাইগোট-সম্পর্কিত সমস্যার সমাধান রয়েছে।
জাইগোট বিধ্বস্ত হচ্ছে
যদি আপনার ডিভাইসটি সঠিকভাবে রিবুট না হয় এবং আপনার লগ বা ক্র্যাশ রিপোর্টগুলি Zygote এর সাথে সমস্যা দেখায়, তাহলে সম্ভবত আপনি একটি সাম্প্রতিক পরিবর্তন করেছেন যা initd বা সিস্টেম সার্ভার ক্র্যাশ করে। আপনার কোড ঠিক করা সমস্যা সমাধান করা উচিত.
SELinux অস্বীকার বা IO ব্যর্থতা
জাইগোট প্রক্রিয়ার সীমানা জুড়ে ফাইল বর্ণনাকারী স্বাস্থ্যবিধি সম্পর্কে বিশেষ। যখন ফাইল বর্ণনাকারী ফর্ক টাইমে উপস্থিত থাকে কিন্তু অনুমোদিত তালিকায় না থাকে, তখন নতুন খোলা ফাইলগুলি অ্যাক্সেস করার জন্য ক্যাশে করা ফাইল বর্ণনাকারীকে অনিচ্ছাকৃতভাবে ব্যবহার করা থেকে বিরত রাখতে আমরা /dev/null
এ একটি dup
সিস্টেম কল ব্যবহার করি।
আপনি যদি জাইগোটে রিসোর্স লোড করার চেষ্টা করে এবং আপনি SELinux অস্বীকৃতি বা IO ব্যর্থতা পান তাহলে ফ্রেমওয়ার্ক পরিবর্তন করছেন:
নামহীন ফাইল বর্ণনাকারীর জন্য, যখন
Restat
কল করা হয় তখনfds_to_ignore
ভেক্টরে ফাইল বর্ণনাকারী অন্তর্ভুক্ত করুন।নামযুক্ত ফাইল বর্ণনাকারীদের জন্য:
-
WORKING_DIRECTORY /frameworks/base/core/jni/fd_utils.cpp
সম্পাদনা করুন। - খোলা ফাইলগুলির জন্য অনুমোদিত তালিকায় পাথ যোগ করুন।
-