টুল ও পারফর্ম্যান্স

এজেন্টিক যুগে অ্যাপের নিরাপত্তা

স্পিকার

  • ক্রিস্টেন ও'লিয়ারি

    সিনিয়র ডেভেলপার রিলেশনস ইঞ্জিনিয়ার

  • Sabs

    ডেভেলপার রিলেশনস ইঞ্জিনিয়ার

সম্পর্কে

টক সম্পর্কে

এই প্রেজেন্টেশনটি AI-কে একটি জেনেরিক কোডিং অ্যাসিস্ট্যান্ট হিসেবে দেখার থেকে শুরু করে Android ডেভেলপমেন্ট লাইফসাইকেলে সরাসরি ইন্টিগ্রেট করা একটি প্রসঙ্গ-সচেতন, অটোমেটেড নিরাপত্তা পিয়ার রিভিউয়ার হিসেবে ব্যবহার করার কৌশলগত পরিবর্তনকে এক্সপ্লোর করে। আমরা আলোচনা করি যে কীভাবে বিশেষ AI এজেন্ট, স্কিলের মাধ্যমে Android টুলচেনের সাথে কানেক্ট করে, অ্যাপের নিরাপত্তা উন্নত করতে সাহায্য করতে পারে। র-LLM ক্ষমতা এবং গভীর প্রোজেক্ট প্রসঙ্গের মধ্যে ব্যবধান কমিয়ে, এই পদ্ধতি ডেভেলপমেন্ট টিমকে কঠোর নিরাপত্তা এবং নীতির মানদণ্ডের সাথে আপস না করেই দ্রুত ফিচার ডেলিভারি বজায় রাখার ক্ষমতা দেয়।

সারাংশ

  • জেনেরিক AI এজেন্ট অডিট করার সময় মূল প্রসঙ্গ মিস করে যায়, কিন্তু Android নিরাপত্তা দক্ষতা গবেষক-সমর্থিত নির্দেশিকা প্রদান করে। তারা প্রোজেক্ট-নির্দিষ্ট বিল্ড কনফিগারেশন ব্যবহার করে ইনটেন্ট নিরাপত্তা চেক করে এবং অনুমতি এনফোর্স করে।
  • Play নীতি সংক্রান্ত দক্ষতা জমা দেওয়ার আগে স্ট্যাটিক বিশ্লেষণ করে নীতি মেনে চলা সংক্রান্ত সমস্যা খুঁজে বের করে। এটি বর্তমান Play Store ঘোষণার সাথে কোড বিশ্লেষণ ক্রস-রেফারেন্স করতে পারে।
  • Play Integrity API রানটাইমে অ্যাপ ও ডিভাইস ইন্টিগ্রিটি মূল্যায়ন করে। Protected with Play ড্যাশবোর্ড ইন্টিগ্রিটি ও ডিস্ট্রিবিউশন মনিটরিং এক জায়গায় নিয়ে আসে।
  • টার্গেট করা API, অ্যাপকে ব্যাপক অনুমতির অনুরোধ না করেই ব্যবহারকারীর গোপনীয়তা রক্ষা করার অনুমতি দেয়। উদাহরণ হিসেবে SMS Retriever API এবং আলফা লোকেশন বোতাম লাইব্রেরির কথা বলা যায়।

দক্ষতা

রিসোর্স

Gemini Notebook

বিষয়

  • অ্যাপ-নিরাপত্তা
  • ai-agents
  • play-integrity-api
  • অনুমতি
  • লোকেশন-বোতাম
  • advanced-protection-mode

ট্রান্সস্ক্রিপ্ট করা

ভূমিকা

  • হ্যালো, আমি ক্রিস্টেন।

  • হ্যালো, আমি সাবস।

  • আর আমরা আজ এখানে এসেছি এজেন্টিক যুগে নিরাপত্তা নিয়ে কথা বলতে।

  • গত বছরে, আমরা Android Bug Hunters প্রোগ্রামের জন্য $২ মিলিয়নের বেশি এবং মোবাইলের জন্য ২০০ হাজারের বেশি পুরস্কার দিয়েছি।

  • আজকের এজেন্টিক যুগে, অ্যাপের নিরাপত্তা ক্রমাগত বিকশিত হচ্ছে।

  • তাই, আসুন এমন টুল সম্পর্কে আলোচনা করি যা আমাদের এইসব সমস্যার দ্রুত ও কার্যকর সমাধান করতে সাহায্য করবে।

  • Android-এর নিরাপত্তার জন্য এজেন্টরা কীভাবে পারফর্ম করে তা উন্নত করতে, উত্তরটি আরও ভালো প্রম্পট নয়।

  • এটি হল টুল ও ওয়ার্কফ্লো যা এজেন্টদের আমাদের টুলচেন ও API বুঝতে সাহায্য করে যাতে আপনার অ্যাপ সুরক্ষিত রাখা যায়।

  • তাহলে, বিকেল ৪:৩০-এ।

  • কোনও এক বৃহস্পতিবার।

  • আপনি একটি রিলিজ কাটছেন এবং CI লাল হয়ে যায়, শুধুমাত্র একটি সমস্যা: এক্সপোর্ট ফ্ল্যাগ ছাড়াই একটি ব্রডকাস্ট রিসিভার রেজিস্টার করা হয়েছে।

  • তাই, আপনি ছোট টিমে কাজ করুন বা বড় টিমে, যেখানে রিলিজ করার সময় নিরাপত্তা সংক্রান্ত চেক করা হয়, বাস্তবটা একই।

  • আমরা প্রোডাক্ট ইঞ্জিনিয়ার, খুব ভালো কোয়ালিটির ফিচার দ্রুত শিপিং করি এবং আমরা নিরাপত্তা গবেষক নই।

  • তাহলে, স্বাভাবিক প্রবৃত্তি কী?

  • তাই, আমরা সেই সতর্কতা একটি এজেন্টিক টুলকে দিই এবং এজেন্টকে একটি সমাধান দিতে বলি।

AI এজেন্ট নিরাপত্তা অডিটের প্রসঙ্গ সংক্রান্ত সীমাবদ্ধতা

  • কিন্তু আপনার প্রোজেক্ট কন্টেক্সট ছাড়া কাজ করা এজেন্টিক টুলের তিনটি ব্লাইন্ড স্পট আছে।

  • এটি হয়ত জানে না যে আপনার অ্যাপ ডায়নামিক ফিচার মডিউল বা মাল্টি-APK বান্ডেল থেকে তৈরি করা হয়েছে।

  • এটি একটি ফাইল দেখে, শিপ করা আর্টিফ্যাক্ট নয়।

  • এটি হয়ত আপনার Kotlin UI থেকে KMP শেয়ার করা লজিক হয়ে নেটিভ C++ JNI কল পর্যন্ত ডেটা ফ্লো ট্র্যাক করতে পারবে না।

  • এটি শুধুমাত্র একটি লেয়ার দেখতে পায়।

  • সবশেষে, এটি আপনার ন্যূনতম SDK বা Gradle বিল্ড ফ্লেভার সম্পর্কে নাও জানতে পারে।

  • তাই, আমরা অ্যাপে একজন এজেন্টকে নির্দেশ করেছি এবং নিরাপত্তা অডিট করতে বলেছি।

  • ছয়টি ফলাফল পাওয়া গেছে।

  • আর এখানে একটি বিষয় আছে।

  • তাদের মধ্যে প্রত্যেকেই ভুল নয়।

  • এগুলি ডিফেন্সিবল, তবে এর মধ্যে একটিই হল সেই বাগ যা দিয়ে আমরা শুরু করেছিলাম।

  • বাকিটা হল ভালো অনুশীলনের মিশ্রণ, আরও তদন্ত করার মতো বিষয়, অনুমান এবং এমন কিছু যা প্রযোজ্য নাও হতে পারে।

  • তাই, এখন আপনি এটিকে আরও সতর্কতা সহ একটি আসল কোড বেসে স্কেল করেন এবং প্রতিটি পুল অনুরোধে, আপনি সাপ্রেস লিন্ট ব্যবহার করার জন্য প্রলুব্ধ হবেন।

  • সেই পরিবর্তন মার্জ করার জন্য আপনাকে পরিবর্তন করতে হবে অথবা আপনি সম্পূর্ণভাবে কোনও দুর্বলতা মিস করতে পারেন।

  • আর এভাবেই আসল দুর্বলতাগুলি নজর এড়িয়ে যায়।

  • টুলটি অসতর্ক ছিল না, এটি সতর্ক ছিল, কিন্তু সতর্ক থাকা এবং উপযোগী হওয়া এক জিনিস নয়।

  • আসুন, এটি আরও মজবুত করা যাক।

  • ধরুন, আপনি এজেন্টকে বললেন, "অ্যাপ ইনটেন্ট রিডাইরেকশনের জন্য এই অ্যাপের প্রতিটি এক্সপোর্ট করা কম্পোনেন্ট অডিট করো।"

  • এটি একটি আসল নিরাপত্তা সংক্রান্ত টাস্ক এবং মাল্টি-মডিউল অ্যাপে এটি একটি বড় টাস্ক।

  • এই ধরনের অনুরোধের ক্ষেত্রে খরচ দেখানো হয়।

  • Android-এর জন্য নির্দিষ্ট নির্দেশিকা ছাড়া, এজেন্টের কাছে সেই প্রশ্নের কোনও উত্তর নেই।

  • তাই, এটি ব্রুট ফোর্স।

  • এটি এমন মডিউল পড়তে পারে যা কিছুই এক্সপোর্ট করে না।

  • এটি প্রথম নীতি থেকে আবার উদ্ভূত হতে পারে যা একটি ইনটেন্ট রিডাইরেক্টকে শোষণযোগ্য করে তোলে।

  • এটি এমন পথ অনুসরণ করতে পারে যা আগে কখনও পৌঁছানো যায়নি।

  • আপনি এক্সপ্লোর করার জন্য পেমেন্ট করছেন, বিশ্লেষণের জন্য নয়।

  • স্কিল হল এমন কিছু যা অনুপস্থিত স্ট্র্যাটেজি প্রদান করে।

  • Android নিরাপত্তা দক্ষতা, উদাহরণস্বরূপ, আপনার এজেন্টকে এমন নির্দেশাবলী প্রদান করে যা বর্তমান নির্দেশিকা অনুসরণ করে, একই ক্রম অনুসরণ করে যা একজন নিরাপত্তা গবেষক আসলে অনুসরণ করবেন এবং এজেন্ট অনুমান করা বন্ধ করে দেয়।

  • এটি নিয়মগুলি আবার আবিষ্কার করে না কারণ নিয়মগুলি স্কিল দ্বারা প্রদান করা হয়েছিল।

এজেন্টদের জন্য Android নিরাপত্তা সংক্রান্ত দক্ষতা

  • বর্তমানে, আমরা দুটি নিরাপত্তা সংক্রান্ত দক্ষতা লঞ্চ করেছি: ইনটেন্ট সিকিউরিটি ও অনুমতি।

  • ইনটেন্ট নিরাপত্তা হল, অন্যান্য অ্যাপ আপনার অ্যাপকে দিয়ে কী কী করাতে পারে।

  • আপনার অ্যাপে অনুমতি আছে, সাইন-ইন সেশনে নেই।

  • তাই, আপনার এক্সপোর্ট করা প্রতিটি কম্পোনেন্ট এবং পেন্ডিং ইনটেন্ট হল আপনার মাধ্যমে কারও কাজ করার সম্ভাব্য উপায়।

  • এই স্কিল এর বিরুদ্ধে সুরক্ষা প্রদান করতে সাহায্য করে।

  • অনুমতি সংক্রান্ত স্কিল, ঘোষিত অনুমতি এবং বাস্তবে প্রয়োগ করা অনুমতির মধ্যে পার্থক্য দূর করতে সাহায্য করে।

  • এটি আপনাকে উপযুক্ত অনুমতি চেক লিখতে সাহায্য করতে পারে।

  • ওয়াইল্ড কার্ড পাথ সহ কোনও পরিষেবা প্রদানকারী একটি ডিরেক্টরির পরিবর্তে পুরো ডেটাবেস অ্যাক্সেস করার অনুমতি দেয় কিনা তা শনাক্ত করতে এটি সাহায্য করে।

  • এটি অতিরিক্ত অনুমতির অনুরোধও শনাক্ত করে।

  • যেমন, ফটো পিকারের মাধ্যমে কাজ হয়ে গেলেও, ব্রড অ্যাক্সেসের অনুরোধ করা।

  • Android CLI-এর সাথে এটি ব্যবহার করুন এবং তারপরে "ইনটেন্ট নিরাপত্তার জন্য অডিট করুন" প্রম্পট দিন।

  • কোনও কনফিগারেশন নেই।

  • কোনও নিয়ম টিউনিং নেই।

  • তাই, আউটপুটে সতর্কতার কোনও তালিকা নেই।

  • এটি একটি রিভিউ।

  • এখানে একটি বাগ রয়েছে, আপনার অ্যাপের জন্য এটি কেন গুরুত্বপূর্ণ এবং এটি কীভাবে ঠিক করবেন তা এখানে দেওয়া হল।

  • আর এখানে পেশাদারি পরামর্শ দেওয়া হল।

  • Android CLI ব্যবহার করলে, খুঁজে পাওয়া ও ইনস্টল করা সহজ হয়।

    android skills list
    android skills add android-intent-security
    android skills add android-permissions-security
  • আপনার প্রোজেক্টে ঠিক কী খুঁজতে হবে তা স্কিল জানে, তাই এটি আপনার অ্যাপকে যেভাবে শিপ করা হয় ঠিক সেভাবেই দেখে।

  • এটি আপনার ন্যূনতম SDK-কে সম্মান করে যাতে ফিক্স কম্পাইল, আসল ফাইল পাথ, আসল লাইন নম্বরগুলি থাকে।

  • এখানে আপনি যে রিভিউটি ফেরত পাবেন তা দেওয়া হল।

  • এটি সঠিক ফাইল এবং লাইন দেখায়, আসল বিপদ এবং পরিবর্তনের কারণ ব্যাখ্যা করে, শুধু Lint-এর কথা বলে না।

  • এটি কোন স্কিল ব্যবহার করেছে তা উল্লেখ করে।

  • এটি বিল্ড কনফিগ পড়ে, ন্যূনতম SDK ২৬ দেখে এবং ContextCompat বেছে নেয় যাতে সমাধানটি কাজ করে এবং আপনাকে একটি ডিফারেন্স দেয় যাতে আপনি এটি প্রয়োগ করতে পারেন।

  • এই সতর্কতাটি আমরা আগে দেখেছি, তবে এখন এটিতে একটি সাজেস্ট করা সমাধান এবং অতিরিক্ত যুক্তি রয়েছে।

Google Play নীতি ইনসাইট স্কিল

  • তাই, আগের স্কিলগুলি নিরাপত্তা সংক্রান্ত বাগ খুঁজে পায়।

  • এখন অন্য একটি বিষয় নিয়ে আলোচনা করা যাক, অ্যাপ নীতি মেনে চলা।

  • যেমন, ধরুন আপনি একজন নতুন অ্যাপ ডেভেলপার এবং Play Store-এ অ্যাপ লঞ্চ করতে চান।

  • আপনার অ্যাপ লঞ্চ করার ক্ষেত্রে ডেটা সুরক্ষা ফর্ম পূরণ করা একটি গুরুত্বপূর্ণ ধাপ, তাই অ্যাপ জমা দেওয়ার আগে আমরা যাতে এটি সঠিকভাবে করতে পারি তা নিশ্চিত করতে সাহায্য করার জন্য আমরা প্রতিটি টুল ব্যবহার করি।

  • Play নীতি সংক্রান্ত স্কিল আপনার কোড বেসের উপর স্ট্যাটিক বিশ্লেষণ করে।

  • আপনি যদি আগে থেকে Play Store-এ আছে এমন কোনও অ্যাপ প্রকাশ করেন, তাহলে এটি Play Store-এর ঘোষণার সাথে স্ট্যাটিক কোড বিশ্লেষণ ক্রস-রেফারেন্স করতে পারে।

  • এই স্কিল রান করলে, অ্যাপ জমা দেওয়ার পরে নয়, বরং আগেই Play নীতি সংক্রান্ত সম্ভাব্য সমস্যা ধরতে পারবেন এবং আপনার জমা দেওয়ার প্রসেস দ্রুত করতে পারবেন।

  • আমরা যে অন্যান্য স্কিল নিয়ে আলোচনা করেছি, ওয়ার্কফ্লোটি তার মতোই: এটি ইমপোর্ট করুন এবং তারপরে বলুন, "আমি জমা দেওয়ার আগে Google Play নীতি মেনে চলার জন্য এই অ্যাপটি অডিট করো।"

  • আপনি ডানদিকে একটি উদাহরণ রিপোর্টের স্ক্রিনশট এবং নিচে এটি ইনস্টল করার জন্য Android CLI কমান্ড দেখতে পাবেন।

    android skills list
    android skills add play-policy-insights

Play Integrity API-এর মাধ্যমে রানটাইম ডিফেন্স

  • সুতরাং, আমরা এখনও পর্যন্ত যা কিছু নিয়ে আলোচনা করেছি, তা শিপ করার আগেই ঘটে: ইনটেন্ট অডিট করা, অনুমতি চেক করা, সম্মতি যাচাই করা।

  • এটি হল বিল্ড টাইম নিরাপত্তা এবং এটি অত্যন্ত গুরুত্বপূর্ণ।

  • কিন্তু এমন অনেক ধরনের সমস্যা আছে যা আপনার APK রিলিজ হওয়ার পরে এবং আপনার নিয়ন্ত্রণে নেই এমন ডিভাইসে চলার সময় দেখা যায়।

  • Play Integrity API রান টাইমে তিনটি প্রশ্নের উত্তর দেয় যেগুলির উত্তর আপনার কোড নিজের সম্পর্কে দিতে পারে না: এটি কি আপনার অ্যাপের আসল, অপরিবর্তিত বিল্ড?

  • এটি কি আসল Android ডিভাইসে চলছে?

  • আর এটি কি Play ব্যবহারকারীর অ্যাকাউন্ট?

  • তাই, আপনি Play Integrity API ব্যবহার করে অ্যাপ ইন্টিগ্রিটি, ডিভাইস ইন্টিগ্রিটি ও আরও অনেক কিছুর ব্যাপারে রায় দিতে পারবেন।

  • আপনার অ্যাপ আরও নিরাপদে প্রকাশ করার কাজ দ্রুত ও সহজ করার পাশাপাশি, আমরা আপনার অ্যাপের উপার্জন ও সুনাম সুরক্ষিত করার কাজও সহজ করছি।

  • তাই, প্রতারণা ও অপব্যবহার থেকে আপনার ব্যবসাকে সুরক্ষিত রাখুন।

  • আপনি এখানে যে নতুন Protected with Play ড্যাশবোর্ড দেখতে পাচ্ছেন, সেটি আপনাকে এক জায়গা থেকে আপনার ইন্টিগ্রিটি, ডিস্ট্রিবিউশন এবং মনিটাইজেশন সংক্রান্ত সুরক্ষা মনিটর এবং কনফিগার করতে সাহায্য করে।

  • এছাড়াও, আমরা Play Integrity API-এর জন্য ওয়ার্ম আপ লেটেন্সি কমাচ্ছি যাতে আপনি স্পিড-ক্রিটিকাল ইউজার জার্নির সময় এইসব চেক ব্যবহার করে থ্রেট ও ঝুঁকিপূর্ণ ডিভাইস আরও দ্রুত ব্লক করতে পারেন।

  • সুতরাং, আমরা অ্যাপ সুরক্ষিত রাখার জন্য Android ফিচার এবং টুল সম্পর্কে আলোচনা করেছি, কিন্তু আপনার ব্যবহারকারীদের সম্পর্কে কী বলা যায়?

SMS OTP প্রোটেকশন API

  • প্রথমে এসএমএস ওটিপি সুরক্ষা সম্পর্কে জেনে নেওয়া যাক।

  • ধরা যাক, আপনি নিজের অ্যাপের জন্য এসএমএস-ভিত্তিক ব্যবহারকারী যাচাইকরণ এবং যাচাইকরণ কোড পাঠানোর সুবিধা প্রয়োগ করতে চান।

  • এসএমএস সংক্রান্ত অনুমতি অ্যাপকে মেসেজিং ডেটা অ্যাক্সেস করার সুবিধা দেয়, যার মধ্যে ওটিপির মতো সংবেদনশীল ডেটাও অন্তর্ভুক্ত।

  • তাই, আপনার অ্যাপে আমরা কয়েকটি API নিয়ে এসেছি যাতে আপনি সেগুলি প্রয়োগ করতে পারেন, যাতে আপনাকে ব্রড এসএমএস সংক্রান্ত অনুমতি চাইতে না হয়, কিন্তু তবুও যাচাইকরণের জন্য এসএমএস ওটিপি কোড বেছে নিতে পারেন।

  • SMS Retriever API আপনার অ্যাপকে বিস্তৃত SMS অনুমতি ছাড়াই অটোমেটিক- অটোমেটিক OTP যাচাই করার অনুমতি দেয়।

  • আপনি মেসেজে আপনার অ্যাপ শনাক্তকারী ১১-অক্ষরের হ্যাশ যোগ করেন এবং সিস্টেম আপনাকে শুধুমাত্র সেই একটি মেসেজই দেয়।

  • আপনি মেসেজের ফর্ম্যাট নিয়ন্ত্রণ করতে না পারলে, এসএমএস ব্যবহারকারীর সম্মতি API ব্যবহার করুন।

  • সিস্টেম একটি, একবারের জন্য প্রম্পট দেখায়।

  • ব্যবহারকারী 'অনুমতি দিন' বা 'প্রত্যাখ্যান করুন' বিকল্পে ট্যাপ করেন এবং তিনি অনুমতি দিলে, আপনি সেই একটি মেসেজ পান।

  • Still no need for a broad SMS permission.

লোকেশন বোতামের মাধ্যমে এককালীন অ্যাক্সেস

  • কিছু অ্যাপের ক্ষেত্রে টাস্ক সম্পূর্ণ করার জন্য সুনির্দিষ্ট লোকেশন শুধুমাত্র একবার প্রয়োজন হতে পারে।

  • বর্তমানে শুধুমাত্র এককালীন অনুমতিতে ব্যবহারকারীর অনেক সমস্যা হয়, তাই কখনও কখনও ডেভেলপাররা এর পরিবর্তে আরও বিস্তৃত সুনির্দিষ্ট অনুমতি চাইবেন।

  • তাই, লোকেশন বোতাম হল এমন একটি টুল যা অ্যাপকে এক-বারের জন্য সুনির্দিষ্ট লোকেশন অ্যাক্সেস করার অনুমতি দেওয়ার জন্য একটি সহজ উপায় প্রদান করে।

  • এটি একটি Android UI এলিমেন্ট যা অ্যাপ ডেভেলপাররা কাস্টমাইজ এবং এম্বেড করতে পারেন।

  • আমরা জুন মাসে আলফা লোকেশন বোতাম Jetpack লাইব্রেরির প্রথম ভার্সন লঞ্চ করেছি।

  • এখানে, আপনার Android ম্যানিফেস্টে লোকেশন বোতাম চালু করার জন্য প্রয়োজনীয় অনুমতিগুলি দেখতে পাবেন।

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"
        android:usesPermissionFlags="onlyForLocationButton"/>
    
    <uses-permission android:name="android.permission.USE_LOCATION_BUTTON" />
    
        <application
            android:icon="@mipmap/ic_launcher"
            android:label="LocationButtonSample"
            android:theme="@style/Theme.PinPoint">
            <activity
                android:name=".MainActivity"
                android:exported="true">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
  • আপনাকে অবশ্যই স্ট্যান্ডার্ড লোকেশন অনুমতি ঘোষণা করতে হবে- সিস্টেমের রিমোট রেন্ডারিং পরিষেবার জন্য প্রয়োজনীয় ডেডিকেটেড USE_LOCATION_BUTTON অনুমতির সাথে onlyForLocationButton অনুমতি ফ্ল্যাগ যোগ করা।

  • ডানদিকে, এটি প্রয়োগ করার জন্য Jetpack কোড দেওয়া আছে।

    ...
    import androidx.core.locationbutton.compose.LocationButton
    
    @Composable
    fun LocationPermissionScreen(onPermissionGranted: () -> Unit, onPermissionDenied: () -> Unit) {
        // Renders the secure system-trusted Location Button composable
        LocationButton(
            // Callback triggered when the user taps the secure button and makes a decision on the permission dialog
            onPermissionResult = { isGranted ->
                if (isGranted) {
                    onPermissionGranted()
                } else {
                    onPermissionDenied()
                }
            },
    ...
  • আপনি এখানে দেখতে পাচ্ছেন যে আমরা একটি লোকেশন বোতাম তৈরি করছি এবং একটি কলব্যাক শুরু করছি।

  • ব্যবহারকারী লোকেশন বোতামে ট্যাপ করলে এই কলব্যাক ট্রিগার হয়, যাতে অনুমতি দেওয়া হয়েছে নাকি বাতিল করা হয়েছে সেই বিষয়ে সিদ্ধান্ত নেওয়া যায়।

উন্নত সুরক্ষা মোড ইন্টিগ্রেশন

  • উন্নত সুরক্ষা মোড হল এমন একটি ফিচার যা ঝুঁকিতে থাকা বা নিরাপত্তা সম্পর্কে সচেতন ব্যবহারকারীদের জন্য তৈরি করা হয়েছে, তবে যে কেউ এটি চালু করতে পারেন।

  • যেমন, ধরুন আপনি একটি ব্যাঙ্কিং অ্যাপ, আপনি প্রতিটি ট্রান্সফারের জন্য অতিরিক্ত মাল্টিফ্যাক্টর যাচাইকরণ করতে বাধ্য করেন না কারণ প্রতিদিন ব্যবহারকারীরা সেই অতিরিক্ত বাধা পছন্দ করেন না।

  • কিন্তু, উন্নত সুরক্ষা মোড চালু থাকলে, আপনার অ্যাপ জানে যে এই ব্যবহারকারী সর্বাধিক সুরক্ষা চান, তাই আপনি প্রতিটি ট্রান্সফারের জন্য অটোমেটিক বায়োমেট্রিক যাচাইকরণ বাধ্যতামূলক করতে পারেন।

  • উন্নত সুরক্ষা মোড, ডিভাইসের সুরক্ষা আরও জোরদার করার জন্য ডিজাইন করা আগে থেকে নির্ধারিত কনফিগারেশনের সেট প্রয়োগ করে।

  • এখানে, আপনার অ্যাপে কীভাবে ইন্টিগ্রেট করবেন তা দেখানো হয়েছে।

  • আপনাকে অনুমতির জন্য অনুরোধ করতে হবে, উন্নত সুরক্ষা মোড কোয়েরি করতে হবে এবং ব্যবহারকারী উন্নত সুরক্ষা মোড চালু করেছেন কিনা তা চেক করতে হবে। এর জন্য আপনাকে অন-ডিভাইস কলিংয়ের মাধ্যমে উন্নত সুরক্ষা মোড ম্যানেজার সিস্টেম পরিষেবা ব্যবহার করতে হবে।

    class AdvancedProtectionManager() {
      // Check the current status
      fun isAdvancedProtectionEnabled(): Boolean
    
      // Be alerted when status changes
      fun registerAdvancedProtectionCallback(executor: Executor,
                                             callback: Callback)
    
      fun unregisterAdvancedProtectionCallback(callback: Callback)
    }
    
    interface Callback() {
      // Called when advanced protection state changes
      fun onAdvancedProtectionChanged(enabled: Boolean)
    }
  • তারপর, আপনি কলব্যাক রেজিস্টার করে রানটাইম পরিবর্তন শুনতে পারবেন।

উপযোগী লিঙ্ক ও রিসোর্স

  • আজ আমরা অনেক বিষয় নিয়ে আলোচনা করেছি।

  • তাই, এখানে কুইক লিঙ্ক দেওয়া হল এবং আপনি যদি এগুলি সম্পর্কে আরও জানতে চান।

  • আমরা এখানে এক সেকেন্ডের জন্য থামব যাতে আপনি প্রয়োজনীয় URL লিখে নিতে পারেন।

  • ধন্যবাদ।

  • ধন্যবাদ।

কোড

কোড স্নিপেট

"Android security skills for agents" ভিডিওর 05:09-এ Shell স্নিপেট
android skills list
android skills add android-intent-security
android skills add android-permissions-security
"Google Play নীতি ইনসাইট স্কিল" ভিডিওর 06:41-এ শেল স্নিপেট
android skills list
android skills add play-policy-insights
"লোকেশন বোতামের মাধ্যমে এককালীন অ্যাক্সেস" ভিডিওর 09:36-এ XML স্নিপেট
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"
    android:usesPermissionFlags="onlyForLocationButton"/>

<uses-permission android:name="android.permission.USE_LOCATION_BUTTON" />

    <application
        android:icon="@mipmap/ic_launcher"
        android:label="LocationButtonSample"
        android:theme="@style/Theme.PinPoint">
        <activity
            android:name=".MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
"লোকেশন বোতামের মাধ্যমে এককালীন অ্যাক্সেস" ভিডিওর 09:54-এ Kotlin স্নিপেট
...
import androidx.core.locationbutton.compose.LocationButton

@Composable
fun LocationPermissionScreen(onPermissionGranted: () -> Unit, onPermissionDenied: () -> Unit) {
    // Renders the secure system-trusted Location Button composable
    LocationButton(
        // Callback triggered when the user taps the secure button and makes a decision on the permission dialog
        onPermissionResult = { isGranted ->
            if (isGranted) {
                onPermissionGranted()
            } else {
                onPermissionDenied()
            }
        },
...
"উন্নত সুরক্ষা মোড ইন্টিগ্রেশন" ভিডিওতে ১০:৫৩-এ Kotlin স্নিপেট
class AdvancedProtectionManager() {
  // Check the current status
  fun isAdvancedProtectionEnabled(): Boolean

  // Be alerted when status changes
  fun registerAdvancedProtectionCallback(executor: Executor,
                                         callback: Callback)

  fun unregisterAdvancedProtectionCallback(callback: Callback)
}

interface Callback() {
  // Called when advanced protection state changes
  fun onAdvancedProtectionChanged(enabled: Boolean)
}