ফিল্টারযুক্ত অ্যাপল বুদ্ধিমত্তার জন্য জেনারেটর মডেল সুরক্ষা ফাইলগুলি ডিক্রিপ্ট করা হয়েছে
decrypted_overrides/
: বিভিন্ন মডেলের জন্য ডিক্রিপ্টড ওভাররাইড রয়েছে।com.apple.*/
: সুরক্ষার তথ্যের সাথে অ্যাসোসিয়েটেড অ্যাসেট স্পেসিফায়ার ব্যবহার করে ডিরেক্টরিটির নামকরণ করা হয়েছেInfo.plist
: ওভাররাইডের জন্য মেটাডেটা রয়েছেAssetData/
: ডিক্রিপ্টেড জেএসএন ফাইল রয়েছে
get_key_lldb.py
: এনক্রিপশন কী পেতে স্ক্রিপ্ট (নীচে ব্যবহারের তথ্য দেখুন)decrypt_overrides.py
: ওভাররাইডগুলি ডিক্রিপ্ট করার জন্য স্ক্রিপ্ট (নীচে ব্যবহারের তথ্য দেখুন)
cryptography
ডিক্রিপশন স্ক্রিপ্ট চালানোর জন্য একমাত্র নির্ভরতা। আপনি এটি পিআইপি ব্যবহার করে ইনস্টল করতে পারেন:
ওভাররাইডগুলির জন্য এনক্রিপশন কীটি (মডেলক্যাটালগ.অবফাসেশন.আরডব্লাসেটেড কনটেন্টেন্টস দ্বারা উত্পাদিত) পুনরুদ্ধার করতে, আপনাকে অবশ্যই LLDB সংযুক্ত করতে হবে জেনারিটিভ এক্সপেরিয়েন্সেসেসফেটিইনফারভাইডার (এর সাথে ( /System/Library/ExtensionKit/Extensions/GenerativeExperiencesSafetyInferenceProvider.appex/Contents/MacOS/GenerativeExperiencesSafetyInferenceProvider
)। এছাড়াও এটি গুরুত্বপূর্ণ যে এটি এক্সকোডের এলএলডিবি, ডিফল্ট ম্যাকোস ওয়ান বা এলএলভিএম এর এলএলডিবি নয়। আমি যে পদ্ধতিটি এলএলডিবি সংযুক্ত করার পরামর্শ দিচ্ছি:
- চালানো
sudo killall GenerativeExperiencesSafetyInferenceProvider; sudo xcrun lldb -w -n GenerativeExperiencesSafetyInferenceProvider /System/Library/ExtensionKit/Extensions/GenerativeExperiencesSafetyInferenceProvider.appex/Contents/MacOS/GenerativeExperiencesSafetyInferenceProvider
- শর্টকাট অ্যাপ্লিকেশনগুলিতে, একটি ডামি শর্টকাট তৈরি করুন যা জেনারেটর মডেল অ্যাকশন (“মডেল ব্যবহার করুন”) ব্যবহার করে এবং অন-ডিভাইস বিকল্পটি নির্বাচন করুন। আপনি পাঠ্য ক্ষেত্রে যা চান তা টাইপ করুন, তাতে কিছু যায় আসে না। তারপরে শর্টকাট চালান।
- আপনার এলএলডিবি সংযুক্ত (সদ্য শুরু হওয়া উদাহরণ) জেনারিটিভ এক্সপেরিয়েন্সফিটিইনফারেন্সপ্রোভিডারকে এই জাতীয় বার্তা সহ সংযুক্ত করা উচিত:
(lldb) process attach --name "GenerativeExperiencesSafetyInferenceProvider" --waitfor
Process 53629 stopped
* thread #1, stop reason = signal SIGSTOP
frame #0: 0x00000001839f41f8 dyld`dyld4::PrebuiltLoader::dependent(dyld4::RuntimeState const&, unsigned int, mach_o::LinkedDylibAttributes*) const + 116
dyld`dyld4::PrebuiltLoader::dependent:
-> 0x1839f41f8 <+116>: add x0, sp, #0xe
0x1839f41fc <+120>: mov x1, x19
0x1839f4200 <+124>: bl 0x1839e50dc ; dyld4::Loader::LoaderRef::loader(dyld4::RuntimeState const&) const
0x1839f4204 <+128>: ldrh w8, (x20, #0x4)
Target 0: (GenerativeExperiencesSafetyInferenceProvider) stopped.
Executable binary set to "/System/Library/ExtensionKit/Extensions/GenerativeExperiencesSafetyInferenceProvider.appex/Contents/MacOS/GenerativeExperiencesSafetyInferenceProvider".
Architecture set to: arm64e-apple-macosx-.
- এই সংগ্রহস্থলের মূলে, এলএলডিবিতে কমান্ডটি চালান:
command script import get_key_lldb.py
- তারপর দৌড়ে
c
প্রক্রিয়া চালিয়ে যেতে। এলএলডিবি কনসোলে এনক্রিপশন কীটি মুদ্রণ করবে এবং এটিতে সংরক্ষণ করবে./key.bin
।
ওভাররাইডগুলি ডিক্রিপ্ট করতে, এই সংগ্রহস্থলের মূলে নিম্নলিখিত কমান্ডটি চালান:
python decrypt_overrides.py /System/Library/AssetsV2/com_apple_MobileAsset_UAF_FM_Overrides/purpose_auto \
-k key.bin \
-o decrypted_overrides
দ্য decrypted_overrides
ডিরেক্টরি এটি বিদ্যমান না থাকলে তৈরি করা হবে এবং ডিক্রিপ্ট করা ওভাররাইডগুলি এতে স্থাপন করা হবে। এটি কেবল তখনই প্রয়োজনীয় যদি ওভাররাইডগুলি আপডেট করা হয়, ইতিমধ্যে এই ভান্ডারটিতে ওভাররাইডগুলির একটি ডিক্রিপ্টড সংস্করণ রয়েছে যা 28 জুন, 2025 পর্যন্ত আপ টু ডেট।
ওভাররাইডগুলি হ’ল জেএসএন ফাইল যা বিভিন্ন জেনারেটর মডেলের জন্য সুরক্ষা ফিল্টার ধারণ করে। প্রতিটি ওভাররাইড একটি নির্দিষ্ট মডেল প্রসঙ্গের সাথে সম্পর্কিত (আমি যা বলতে পারি তা থেকে) এবং এমন নিয়ম রয়েছে যা নির্দিষ্ট পরিস্থিতিতে মডেলটিকে কীভাবে আচরণ করা উচিত তা নির্ধারণ করে যেমন ক্ষতিকারক সামগ্রী ফিল্টার করা বা সুরক্ষা মানগুলির সাথে সম্মতি নিশ্চিত করা।
ওভাররাইডগুলির একটির উদাহরণ এখানে metadata.json
ফাইল থেকে উত্স dec_out_repo/decrypted_overrides/com.apple.gm.safety_deny.output.code_intelligence.base
। নোট করুন output
নির্দিষ্টকরণের অংশ, যা ইঙ্গিত করে যে এটি ব্যবহারকারীর ইনপুটটির চেয়ে মডেল আউটপুটের জন্য একটি সুরক্ষা ওভাররাইড:
{
"reject": (
"xylophone copious opportunity defined elephant 10out",
"xylophone copious opportunity defined elephant out"
),
"remove": (),
"replace": {},
"regexReject": (
"(?i)\\bbitch\\b",
"(?i)\\bdago\\b",
"(?i)\\bdyke\\b",
"(?i)\\bhebe\\b",
...
),
"regexRemove": (),
"regexReplace": {}
}
এখানে, reject
ক্ষেত্রের সঠিক বাক্যাংশ রয়েছে যার ফলে রক্ষণাবেক্ষণ লঙ্ঘন হবে। দ্য remove
ফিল্ডে এমন বাক্যাংশ রয়েছে যা আউটপুট থেকে সরানো হবে, যখন replace
ফিল্ডে বাক্যাংশ রয়েছে যা অন্যান্য বাক্যাংশের সাথে প্রতিস্থাপন করা হবে। দ্য regexReject
, regexRemove
এবং regexReplace
ক্ষেত্রগুলিতে নিয়মিত এক্সপ্রেশন থাকে যা একইভাবে সামগ্রীর সাথে মেলে এবং ফিল্টার করতে ব্যবহৃত হবে।