আমি বেশ কিছুদিন ধরেই ভাবছিলাম; অ্যান্ড্রয়েড কোথায় এটি ব্যবহারকারীর এবং গ্রুপ আইডি তথ্য সঞ্চয় করে?
উদাহরণস্বরূপ, স্ট্যান্ডার্ড লিনাক্সে ব্যবহারকারী এবং গোষ্ঠী সম্পর্কিত তথ্য যথাক্রমে /etc/passwd
এবং সংরক্ষণ করা /etc/group
হয়। আপনি যখন কোনও গোষ্ঠীতে কোনও ব্যবহারকারী যুক্ত করেন, তার বা তার ব্যবহারকারীর নাম / uid group গোষ্ঠীর ব্যবহারকারীদের তালিকায় যুক্ত হয়, উদাহরণস্বরূপ আমার অডিও গোষ্ঠী এন্ট্রিটি এর /etc/group
মতো দেখায়:
audio:x:29:pulse,edge-case
যেখানে ডালটি পালসৌদিও ডেমনের উডে ম্যাপ করা হয় এবং আমার লিনাক্স বাক্সে প্রান্ত-কেসটি আমার ইউআইডি (1000) এ ম্যাপ করা হয়।
আমি এটি বুঝতে পেরেছি, অ্যান্ড্রয়েডে ইনস্টল হওয়া প্রতিটি অ্যাপ্লিকেশনটি তার নিজস্ব জিড এবং গিড পায় এবং এগুলি অ্যান্ড্রয়েডে ঘটে এমন অ্যাপগুলির "স্যান্ডবক্সিং" এর ঘাঁটি যা তারা নিজেরাই প্রক্রিয়াতে চালিত হয় এবং অন্যটির ডেটা অ্যাক্সেস করতে পারে না প্রক্রিয়া বা অন্য অ্যাপের মালিকানাধীন ফাইলগুলি অ্যাপ্লিকেশন প্রোগ্রামারদের দ্বারা তৈরি ম্যানিফেস্ট ফাইলে ঘোষণা না দেওয়া থাকে যা অন্যান্য অ্যাপ্লিকেশনগুলিতে কোন তথ্য ভাগ করা উচিত এবং কী নয় তা নির্দেশ করে। অ্যাপ্লিকেশনগুলি কীভাবে ইন্টারনেট গ্রুপে যুক্ত হওয়ার অনুরোধ করে বা সে জাতীয় কিছুতে নেট নেট গ্রুপের নামে উদ্ধৃতি না দিয়ে, ইনস্টলেশন চলাকালীন নেটওয়ার্কিং পরিষেবাগুলিতে অ্যাক্সেস পাওয়ার বা পরিবর্তনের অনুরোধ জানায়, এটি আইএনইটি বা আরও কিছু হতে পারে আইএনইটি,, যেভাবেই আমি জানি যে নেটওয়ার্ক অ্যাক্সেসের কয়েকটি স্তরের অ্যান্ড্রয়েডে এই প্রক্রিয়াটির মাধ্যমে কোনও অ্যাপ্লিকেশনকে মঞ্জুরি দেওয়া যেতে পারে।
আমার প্রশ্ন, অ্যান্ড্রয়েডে এই তথ্যটি কোথায় সংরক্ষণ করা হয়?
আরও আরও, এটি পরিবর্তন করা সম্ভব?
আমি এটির সাথে একটি গ্লিবসি স্ট্যাক এবং এর মধ্যে থাকা /etc/{passwd,group}
ফাইলগুলিতে আমার ফাইলগুলিতে একীকরণ করতে চাই , আমার উপর বিশ্বাস রাখুন, সেগুলি আমার ফোনে উপস্থিত রয়েছে, এমনকি আমি আরও অনেক গুডির সাথে ইনস্টল করেছি।
আপডেট: আরও অনুসন্ধান করা হয়েছে এবং এটি আমি যা খুঁজছি তা হতে পারে।
আমাকে আরও গভীর খনন করতে হবে এবং এটি অনুসন্ধান করা উচিত যা আমি সন্ধান করছি is
আপডেট: (5:40 জুন 27 2014)
যেহেতু কেউ মনে করে আমি কী করছি বা কী বিষয়ে কথা বলছি তা আমি জানি না, তাই আমাকে স্পষ্ট করে বলি;
অ্যান্ড্রয়েডে ব্যবহারকারী ইউআইডিগুলি 100000 দিয়ে অফসেট হয় এবং ব্যবহারকারী নম্বর _ অ্যাপ্লিকেশন নম্বরটিতে ম্যাপ করলে অ্যাপ ইউআইডি 10000 দিয়ে অফসেট হয়, তাই যখন কোনও পিএস u0_a10 এর মতো কিছু দেখায় যার অর্থ ইউআইডি 100000 সহ ব্যবহারকারী ইউআইডি 10010 দিয়ে অ্যাপ চালাচ্ছে,
আমি ইউআইডি এবং ব্যবহারকারী / ডেমন নামগুলি সিস্টেম / কোর / থেকে অন্তর্ভুক্ত / প্রাইভেট / অ্যান্ড্রয়েড_ফাইলসিসটেম_কনফিগ। এইচটি এনেছি এবং তাদের আমার / ইত্যাদি / পাসডাব্লু এবং / ইত্যাদি / গ্রুপ ফাইলগুলি (আমার অ্যান্ড্রয়েড বাক্সে) আপডেট করতে ব্যবহার করেছি, উদাহরণস্বরূপ আমার / ইত্যাদি / পাসডাব্লুডি ফাইল (আমার অ্যান্ড্রয়েড বাক্সে) এর মতো দেখাচ্ছে:
....
brainard:x:100002:100002:Professor Brainard,0420,,:/home/brainard
:/bin/bash
radio:x:1001:1001::/data/radio:/bin/false
bluetooth:x:1002:1002::/data/bluetooth:/bin/false
graphics:x:1003:1003::/home/graphics:/bin/false
input:x:1004:1004::/home/input:/bin/false
camera:x:1006:1006::/home/camera:/bin/false
log:x:1007:1007::/home/log:/bin/false
compass:x:1008:1008::/home/compass:/bin/false
mount:x:1009:1009::/home/mount:/bin/false
wifi:x:1010:1010::/home/wifi:/bin/false
adb:x:1011:1011::/home/adb:/bin/false
install:x:1012:1012::/home/install:/bin/false
media:x:1013:1013::/home/media:/bin/false
dhcp:x:1014:1014::/home/dhcp:/bin/false
....
আমি এর মতো নতুন ব্যবহারকারী তৈরি করতে /etc/adduser.conf এ কনফিগারেশন সেট আপ করেছি (আমার অ্যান্ড্রয়েড বাক্সে):
# FIRST_[GU]ID to LAST_[GU]ID inclusive is the range of UIDs of dynamically
# allocated user accounts/groups.
FIRST_UID=100001
LAST_UID=199999
FIRST_GID=100001
LAST_GID=199999
এটি অ্যান্ড্রয়েডের নীতি অনুসারে, আমি "গ্লিবসি ভিত্তিক" সিস্টেম ব্যবহারকারীদের এখনও 100-999 পরিসীমা থেকে তৈরি করতে দিয়েছি বলে আমি বিশ্বাস করি এবং আমি আমার / ইত্যাদি / পাসডাব্লু এবং / ইত্যাদি / গ্রুপ ফাইলগুলিতে অডিও ব্যবহারকারীকে 1005 এর মতো করে পরিবর্তন করেছি এটি অ্যান্ড্রয়েডে রয়েছে।
আমাকে অ্যান্ড্রয়েড আপডেট করতে হবে এবং আমার ইউআইডি সম্পর্কিত তথ্য এবং সেইসাথে গ্লিব্যাক স্ট্যাক থেকে আমার ডেমন বা সিস্টেম ব্যবহারকারী ইউআইডিগুলির সাথে এটি সমন্বয় করতে হবে।
আপনি এখানে করিম ইয়াঘমৌর বিক্রয়কৃত "এম্বেড অ্যান্ড্রয়েড" বইটিতে আরও পড়তে পারেন
আমার লক্ষ্য এনভিএলসি-র মতো প্রোগ্রামগুলি কাজ করা তবে আমার ইউআইডি এবং জিআইডিগুলি সুসংগত করা দরকার যাতে অ্যান্ড্রয়েড আমার ব্যবহারকারীদের এবং তাদের সাথে সম্পর্কিত গ্রুপগুলির সম্পর্কে সচেতন হয় যাতে উদাহরণস্বরূপ, আমার ব্রেনার্ড ব্যবহারকারী অডিও ডিভাইসে অ্যাক্সেস পান have
এছাড়াও পোস্ট্রেস এবং নেটওয়ার্ক গ্রুপে এটির সদস্যতা সম্পর্কে আমার অ্যান্ড্রয়েডকে জানাতে হবে যাতে এটি সকেটগুলি খুলতে পারে এবং ডাটাবেসে অ্যাক্সেস করতে পারে। আমি আপাতত কার্নেলে PARANOID_NETWORKING অক্ষম করেছি, তবে এই হ্যাকটি কেবল অ্যান্ড্রয়েডকে ভ্যানিলা লিনাক্স হিসাবে সুরক্ষিত করে তুলবে, এর চেয়ে কম নয়। ভৌগলিক সেটিংটি রাখা এবং আমি যে ডেমন / ব্যবহারকারীদের উপযুক্ত তা দেখতে গ্রুপ অনুমতিগুলি প্রয়োগ করা ভাল।
এটি এ জাতীয় অদ্ভুত এবং সূক্ষ্ম সুরক্ষা নিয়ন্ত্রণের সাথে জনসাধারণের মুখোমুখি সার্ভারগুলির জন্য অ্যান্ড্রয়েডকে দুর্দান্ত অপারেটিং সিস্টেম করবে। কার্বেরোস, এলডিএপি, প্যামের অ্যাক্সেস থাকার কথা ভাবুন বা আপনার ফোনটি যখন ডাব্লুএইপি যেমন রেডিয়াসটি কনফিগার করা হয়েছে তখন সেগুলি ডেবিয়ান এবং অন্যান্য ডিস্ট্রিবিউশন রেপো থেকে নিখরচায় পাওয়া যায়।
আমি এগুলি সবই বুঝতে পেরেছি, অ্যান্ড্রয়েডের ইউআইডি / জিআইডি ডাটাবেস কীভাবে আপডেট করতে হবে তা আমার কেবল জানতে হবে, যা আপনি যখন কোনও অ্যাপ ইনস্টল করেন প্রতিবার আপডেট হয়, তাই আমি জানি এটি সম্ভব is
আপডেট: (30 জুন, 2014 সন্ধ্যা 7:08)
নিম্নলিখিত ফাইলগুলিতে ডেটা নেওয়ার পরে ...
/data/system/packages.list
/data/system/packages.xml
/data/system/user/userlist.xml
/data/system/user/0.xml
... "আমি কীভাবে এটি ব্যাখ্যা করব?" অন্তর্ভুক্ত করার জন্য আমি আমার প্রশ্ন আপডেট করেছি
- আমি মনে করি যে আমি একটি কাস্টম পিএএম মডিউল তৈরি করতে এবং বায়োনিক এবং গ্লিবিককে একটি সি সি লাইব্রেরিতে মিশ্রিত করতে চাই, তাদের উভয় পক্ষের অ্যাপ্লিকেশনগুলির সাথে সামঞ্জস্য করা দরকার, কোনও ব্যতিক্রম নেই, সি ++ ব্যতিক্রম প্রত্যাশা করা উচিত; আমি --- লিখেছি আমার অনুসরণ করার জন্য থাম্ব -2 এর কয়েকটি নিয়ম :)। আমার কাছে জনপ্রিয় প্যাকেজ ম্যানেজমেন্ট সিস্টেমে আরপিএম এবং অ্যাপ্লিকেশন যেমন একটি এপিকে ইনস্টল করে দেয় এবং প্রতিটি নতুন দেব | আরপিএম প্যাকেজকে একটি ইউআইডি দেয় এবং সম্ভবত এফএইচএসের মধ্যে সিম-লিংক দেয় এমন একটি র্যাপার লিখতেও পারে। এটি হতে পারে সবচেয়ে আদর্শ সমাধান যা আমি যেতে পারি, যদিও সর্বাধিক কাজ হিসাবে প্রত্যেকেরই তাদের "ম্যানিফেস্ট" তে কিছু সেট অনুমতি প্রয়োজন হতে পারে, ইনস্টল করার সময় কোনও মেনু ব্যবহারকারীর দিতে পারে এবং প্রয়োজন মতো নিতে পারে।
- কারও কি এমন একটি ভাল রেফারেন্স রয়েছে যা এই ফাইলগুলির বাক্য গঠনটি ব্যাখ্যা করে? আমি এক্সএমএল সম্পর্কে খুব ভাল পারদর্শী নই, এটির ব্যবহারের কথা উল্লেখ না করা সাধারণত এটির প্রয়োগের উপর নির্ভর করে ts
- আমি শেষ কলামে এন্ট্রি
packages.list
বাদ দিয়ে ফাইলটি বুঝতে পারিnull
, কেউ কি এটি ব্যাখ্যা করতে পারেন?