SlideShare a Scribd company logo
1 of 25
Download to read offline
DIVING INTO ANDROID
ENTERPRISE APIS WITH
CALYXOS
Aayush Gupta
About Me
• Independent Contractor
• Android Dev @ The Calyx Institute
• Senior Staff & DevRel @ XDA Developers
• Organizer @ GDG Bhilai
• FOSS Contributor
DIVING INTO ANDROID ENTERPRISE APIS
WITH CALYXOS
2
MARCH 23
Agenda
• About Us (Institute & OS)
• Android Enterprise APIs
• CalyxOS & Work Profiles
• Bellis (Work Profile Manager)
• More Features
MARCH 23
DIVING INTO ANDROID ENTERPRISE APIS
WITH CALYXOS
3
ABOUT US
The Calyx Institute and CalyxOS
MARCH 23
DIVING INTO ANDROID ENTERPRISE APIS
WITH CALYXOS
4
The Calyx Institute
• A Non-Profit Education and Research
Organization
• Devoted to Studying, Testing,
Developing and Implementing Privacy
Tech & Tools
• Develops & Maintains CalyxOS
MARCH 23
DIVING INTO ANDROID ENTERPRISE APIS
WITH CALYXOS
5
CalyxOS
• Alternative Android Firmware based
upon AOSP
• User friendly
• Focuses on Privacy & Security
• Completely FOSS
MARCH 23
DIVING INTO ANDROID ENTERPRISE APIS
WITH CALYXOS
6
/CalyxOS /CalyxOS
ANDROID ENTERPRISE
APIS
A set of APIs and other tools provided by Google for developers to build
enterprise management solutions for Android devices.
MARCH 23
DIVING INTO ANDROID ENTERPRISE APIS
WITH CALYXOS
7
Android Enterprise
APIs
Android provides organizations with a
secure and flexible mobility platform—
combining devices, apps, and
management.
• Work Profiles
• Managed Configurations
• Dedicated Devices
• Single Sign-On (SSO)
MARCH 23
DIVING INTO ANDROID ENTERPRISE APIS
WITH CALYXOS
8
Work Profiles
A self-contained profile on an Android
device that isolates work apps and data
from personal apps and data.
• Controlled by an IT Admin
• Separate Apps & Data From Personal
Profile (Primary)
• Also referred as Managed Profiles
• Most Intent Do Not Cross Profiles
• System Apps Can Be Limited
• Separate Storage Areas
MARCH 23
DIVING INTO ANDROID ENTERPRISE APIS
WITH CALYXOS
9
Managed Configurations
Managed configurations, allow the
organization's IT admin to remotely
specify settings for apps
• Enables IT Admin to Change App
Settings
• Previously Known as Application
Restrictions
MARCH 23
DIVING INTO ANDROID ENTERPRISE APIS
WITH CALYXOS
10
CALYXOS & WORK
PROFILES
Features and Development
MARCH 23
DIVING INTO ANDROID ENTERPRISE APIS
WITH CALYXOS
11
CalyxOS & Work Profiles
• Created & Managed by User
• Cross-Profile Sharing (In-App Share)
• Permission Auto-Revoke for Work Profiles
• File Operations Across Profiles (Files App, Work
Instance)
• Connected Work & Personal Apps
• Apps & Content Access Management (Bellis)
MARCH 23
DIVING INTO ANDROID ENTERPRISE APIS
WITH CALYXOS
12
BELLIS
Bellis is a Work Profile manager app, based upon the Android
BasicManagedProfile Sample.
MARCH 23
DIVING INTO ANDROID ENTERPRISE APIS
WITH CALYXOS
13
Bellis
• Based upon the Android
BasicManagedProfile Sample
• Simple and Easy UI/UX
• Kotlin and Material3
• Compatible With Both AOSP and
Gradle Build Systems
MARCH 23
DIVING INTO ANDROID ENTERPRISE APIS
WITH CALYXOS
14
Bellis (Cont.)
• Primary Button Triggers Provision
• Once Provision is Complete, Bellis
receives an Activity Intent, Namely
ACTION_PROVISIONING_SUCCESSFUL
• Bellis Sets Profile Name & Owner, Enables
Default Apps and Removes Some
Restrictions
• Redirects User to Setup Wizard
MARCH 23
DIVING INTO ANDROID ENTERPRISE APIS
WITH CALYXOS
15
MARCH 23
DIVING INTO ANDROID ENTERPRISE APIS
WITH CALYXOS
16
private fun provisionManagedProfile(context: Context) {
val intent = Intent(DevicePolicyManager.ACTION_PROVISION_MANAGED_PROFILE).apply {
val component = BasicDeviceAdminReceiver.getComponentName(context)
putExtra(DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME,
component)
putExtra(
DevicePolicyManager.EXTRA_PROVISIONING_MODE,
DevicePolicyManager.PROVISIONING_MODE_MANAGED_PROFILE_ON_PERSONAL_DEVICE
)
}
try {
startForResult.launch(intent)
activity?.finish()
} catch (exception: ActivityNotFoundException) {
Toast.makeText(
context,
context.getString(R.string.managed_provisioning_not_enabled),
Toast.LENGTH_SHORT
).show()
}
} [Bellis Code]
MARCH 23
DIVING INTO ANDROID ENTERPRISE APIS
WITH CALYXOS
17
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.main_activity)
when (intent.action) {
DevicePolicyManager.ACTION_PROVISIONING_SUCCESSFUL -> {
PostProvisioningHelper.completeProvisioning(this)
launchSUW()
}
}
}
private fun launchSUW() {
val setupWizard = "org.lineageos.setupwizard"
val setupWizardActivity = ".SetupWizardActivity"
val intent = Intent(Intent.ACTION_MAIN).apply {
setClassName(setupWizard, setupWizard + setupWizardActivity)
addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
}
startActivity(intent)
}
}
[Bellis Code]
MARCH 23
DIVING INTO ANDROID ENTERPRISE APIS
WITH CALYXOS
18
Bellis (Cont.)
• On Completing Setup, User Finds
Themselves On Bellis (Work Profile
Instance)
• Fragment Contains Two Buttons Allowing
Users Either To Manage or Delete Work
Profile
• Manage Button Launches Intent in
Settings App
• Delete Button Shows DialogFragment for
Deleting Work Profile
MARCH 23
DIVING INTO ANDROID ENTERPRISE APIS
WITH CALYXOS
19
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
view.findViewById<Toolbar>(R.id.toolbar)?.setOnMenuItemClickListener {
when (it.itemId) {
R.id.removeProfile -> RemoveProfileDialogFragment.show(this)
else -> Log.d(TAG, "Unexpected itemId: ${it.itemId}")
}
true
}
view.findViewById<View>(R.id.app_and_content_access)?.setOnClickListener {
val intent = Intent(userSettings).apply {
addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY)
putExtra(Intent.EXTRA_USER, Process.myUserHandle())
}
it.context.startActivity(intent)
}
}
[Bellis Code]
Intent("android.settings.USER_SETTINGS").apply {
MARCH 23
DIVING INTO ANDROID ENTERPRISE APIS
WITH CALYXOS
20
UserHandle userHandle = getIntent().getParcelableExtra(Intent.EXTRA_USER, UserHandle.class);
if (userHandle != null) {
int userId = userHandle.getIdentifier();
if (mUserManager.isManagedProfile(userId)) {
openUserDetails(mUserManager.getUserInfo(userId), true);
}
}
[Settings Code]
MORE FEATURES
Other Options, Security Levels, Multiple Profiles and more
MARCH 23
DIVING INTO ANDROID ENTERPRISE APIS
WITH CALYXOS
21
Other Options
• Contains Options Used by Users
Frequently (Contained in Developer
Options) for Security & Privacy Gains
• Maintains Security Requirement for
Certain Switches
• Available When
DISALLOW_DEBUGGING_FEATURES
Restriction is Set
MARCH 23
DIVING INTO ANDROID ENTERPRISE APIS
WITH CALYXOS
22
Multiple Profiles
• Allows Provisioning Multiple Managed
Profiles
• Isolate apps not just from your
workplace but from each other
• Turn off entire sets of apps at once
• Protect and encrypt some apps with a
separate passphrase
• Use different VPNs for different
profiles
• Currently in Development
MARCH 23
DIVING INTO ANDROID ENTERPRISE APIS
WITH CALYXOS
23
Security Levels
• Configurable Device Security Level
• Offers Three Different Levels, Inspired
From Tor Browser
• Standard Offers Default Features
• Safer Builds Upon Standard, Sets
Default Timeout for Wi-Fi, Bluetooth
and Device Reboot, Sets Orbot as
Always-On-VPN
• Safest Builds Upon Safer, Sets
DISALLOW_INSTALL_UNKNOWN_SO
URCES_GLOBALLY and
DISALLOW_DEBUGGING_FEATURES
Restrictions, and More
• Currently in Development
MARCH 23
DIVING INTO ANDROID ENTERPRISE APIS
WITH CALYXOS
24
THANK YOU
CONNECT WITH US

More Related Content

Similar to Diving into Android Enterprise APIs with CalyxOS.pptx

BlueHat Seattle 2019 || I'm in your cloud: A year of hacking Azure AD
BlueHat Seattle 2019 || I'm in your cloud: A year of hacking Azure ADBlueHat Seattle 2019 || I'm in your cloud: A year of hacking Azure AD
BlueHat Seattle 2019 || I'm in your cloud: A year of hacking Azure ADBlueHat Security Conference
 
IBM Social Business Toolkit
IBM Social Business ToolkitIBM Social Business Toolkit
IBM Social Business ToolkitVan Staub, MBA
 
Social Networking using ROR
Social Networking using RORSocial Networking using ROR
Social Networking using RORDhaval Patel
 
Enter the World of PowerApps - Canvas vs. Model-Driven Apps
Enter the World of PowerApps - Canvas vs. Model-Driven AppsEnter the World of PowerApps - Canvas vs. Model-Driven Apps
Enter the World of PowerApps - Canvas vs. Model-Driven AppsDaniel Laskewitz
 
AppliFire Blue Print Design Guidelines
AppliFire Blue Print Design GuidelinesAppliFire Blue Print Design Guidelines
AppliFire Blue Print Design GuidelinesAppliFire Platform
 
How does Quest Software fit into a Microsoft hybrid environment?
How does Quest Software fit into a Microsoft hybrid environment?How does Quest Software fit into a Microsoft hybrid environment?
How does Quest Software fit into a Microsoft hybrid environment?Xylos
 
Community call: Develop multi tenant apps with the Microsoft identity platform
Community call: Develop multi tenant apps with the Microsoft identity platformCommunity call: Develop multi tenant apps with the Microsoft identity platform
Community call: Develop multi tenant apps with the Microsoft identity platformMicrosoft 365 Developer
 
Microsoft Azure Kimlik Yönetimi
Microsoft Azure Kimlik YönetimiMicrosoft Azure Kimlik Yönetimi
Microsoft Azure Kimlik YönetimiÖnder Değer
 
Llunitebe2018 ten practical tips to secure your corporate data with microsoft...
Llunitebe2018 ten practical tips to secure your corporate data with microsoft...Llunitebe2018 ten practical tips to secure your corporate data with microsoft...
Llunitebe2018 ten practical tips to secure your corporate data with microsoft...Kenny Buntinx
 
Atlassian jira как полностью раскрыть возможности
Atlassian jira   как полностью раскрыть возможностиAtlassian jira   как полностью раскрыть возможности
Atlassian jira как полностью раскрыть возможностиAndrew Fadeev
 
Fuel Good 2018: What's New and Coming Up in D365 CRM?
Fuel Good 2018: What's New and Coming Up in D365 CRM?Fuel Good 2018: What's New and Coming Up in D365 CRM?
Fuel Good 2018: What's New and Coming Up in D365 CRM?Sparkrock
 
Microsoft Cloud Identity and Access Management Poster - Atidan
Microsoft Cloud Identity and Access Management Poster - AtidanMicrosoft Cloud Identity and Access Management Poster - Atidan
Microsoft Cloud Identity and Access Management Poster - AtidanDavid J Rosenthal
 
MS Cloud Identity and Access Infographic 2015 (1)
MS Cloud Identity and Access Infographic 2015 (1)MS Cloud Identity and Access Infographic 2015 (1)
MS Cloud Identity and Access Infographic 2015 (1)Luís Serra Libório
 
Azure from scratch part 2 By Girish Kalamati
Azure from scratch part 2 By Girish KalamatiAzure from scratch part 2 By Girish Kalamati
Azure from scratch part 2 By Girish KalamatiGirish Kalamati
 
Colombo Mobile Developer MeetUp - Building Scalable Cloud Connected Mobile Ap...
Colombo Mobile Developer MeetUp - Building Scalable Cloud Connected Mobile Ap...Colombo Mobile Developer MeetUp - Building Scalable Cloud Connected Mobile Ap...
Colombo Mobile Developer MeetUp - Building Scalable Cloud Connected Mobile Ap...99X Technology
 
Microsoft Azure Identity and O365
Microsoft Azure Identity and O365Microsoft Azure Identity and O365
Microsoft Azure Identity and O365Kris Wagner
 
Backstage 2019 - The Atlassian Journey with Amplitude - Itzik Feldman
Backstage 2019 - The Atlassian Journey with Amplitude - Itzik FeldmanBackstage 2019 - The Atlassian Journey with Amplitude - Itzik Feldman
Backstage 2019 - The Atlassian Journey with Amplitude - Itzik FeldmanAmplitude
 

Similar to Diving into Android Enterprise APIs with CalyxOS.pptx (20)

JAM23-24_ppt.pptx
JAM23-24_ppt.pptxJAM23-24_ppt.pptx
JAM23-24_ppt.pptx
 
Fire up your mobile app!
Fire up your mobile app!Fire up your mobile app!
Fire up your mobile app!
 
BlueHat Seattle 2019 || I'm in your cloud: A year of hacking Azure AD
BlueHat Seattle 2019 || I'm in your cloud: A year of hacking Azure ADBlueHat Seattle 2019 || I'm in your cloud: A year of hacking Azure AD
BlueHat Seattle 2019 || I'm in your cloud: A year of hacking Azure AD
 
IBM Social Business Toolkit
IBM Social Business ToolkitIBM Social Business Toolkit
IBM Social Business Toolkit
 
Social Networking using ROR
Social Networking using RORSocial Networking using ROR
Social Networking using ROR
 
Enter the World of PowerApps - Canvas vs. Model-Driven Apps
Enter the World of PowerApps - Canvas vs. Model-Driven AppsEnter the World of PowerApps - Canvas vs. Model-Driven Apps
Enter the World of PowerApps - Canvas vs. Model-Driven Apps
 
AppliFire Blue Print Design Guidelines
AppliFire Blue Print Design GuidelinesAppliFire Blue Print Design Guidelines
AppliFire Blue Print Design Guidelines
 
How does Quest Software fit into a Microsoft hybrid environment?
How does Quest Software fit into a Microsoft hybrid environment?How does Quest Software fit into a Microsoft hybrid environment?
How does Quest Software fit into a Microsoft hybrid environment?
 
Community call: Develop multi tenant apps with the Microsoft identity platform
Community call: Develop multi tenant apps with the Microsoft identity platformCommunity call: Develop multi tenant apps with the Microsoft identity platform
Community call: Develop multi tenant apps with the Microsoft identity platform
 
Microsoft Azure Kimlik Yönetimi
Microsoft Azure Kimlik YönetimiMicrosoft Azure Kimlik Yönetimi
Microsoft Azure Kimlik Yönetimi
 
Llunitebe2018 ten practical tips to secure your corporate data with microsoft...
Llunitebe2018 ten practical tips to secure your corporate data with microsoft...Llunitebe2018 ten practical tips to secure your corporate data with microsoft...
Llunitebe2018 ten practical tips to secure your corporate data with microsoft...
 
Atlassian jira как полностью раскрыть возможности
Atlassian jira   как полностью раскрыть возможностиAtlassian jira   как полностью раскрыть возможности
Atlassian jira как полностью раскрыть возможности
 
Fuel Good 2018: What's New and Coming Up in D365 CRM?
Fuel Good 2018: What's New and Coming Up in D365 CRM?Fuel Good 2018: What's New and Coming Up in D365 CRM?
Fuel Good 2018: What's New and Coming Up in D365 CRM?
 
Microsoft Cloud Identity and Access Management Poster - Atidan
Microsoft Cloud Identity and Access Management Poster - AtidanMicrosoft Cloud Identity and Access Management Poster - Atidan
Microsoft Cloud Identity and Access Management Poster - Atidan
 
MS Cloud Identity and Access Infographic 2015 (1)
MS Cloud Identity and Access Infographic 2015 (1)MS Cloud Identity and Access Infographic 2015 (1)
MS Cloud Identity and Access Infographic 2015 (1)
 
Azure from scratch part 2 By Girish Kalamati
Azure from scratch part 2 By Girish KalamatiAzure from scratch part 2 By Girish Kalamati
Azure from scratch part 2 By Girish Kalamati
 
Colombo Mobile Developer MeetUp - Building Scalable Cloud Connected Mobile Ap...
Colombo Mobile Developer MeetUp - Building Scalable Cloud Connected Mobile Ap...Colombo Mobile Developer MeetUp - Building Scalable Cloud Connected Mobile Ap...
Colombo Mobile Developer MeetUp - Building Scalable Cloud Connected Mobile Ap...
 
Microsoft Azure Identity and O365
Microsoft Azure Identity and O365Microsoft Azure Identity and O365
Microsoft Azure Identity and O365
 
Backstage 2019 - The Atlassian Journey with Amplitude - Itzik Feldman
Backstage 2019 - The Atlassian Journey with Amplitude - Itzik FeldmanBackstage 2019 - The Atlassian Journey with Amplitude - Itzik Feldman
Backstage 2019 - The Atlassian Journey with Amplitude - Itzik Feldman
 
04 objective-c session 4
04  objective-c session 404  objective-c session 4
04 objective-c session 4
 

Recently uploaded

Guardians of E-Commerce: Harnessing NLP and Machine Learning Approaches for A...
Guardians of E-Commerce: Harnessing NLP and Machine Learning Approaches for A...Guardians of E-Commerce: Harnessing NLP and Machine Learning Approaches for A...
Guardians of E-Commerce: Harnessing NLP and Machine Learning Approaches for A...IJAEMSJORNAL
 
Turn leadership mistakes into a better future.pptx
Turn leadership mistakes into a better future.pptxTurn leadership mistakes into a better future.pptx
Turn leadership mistakes into a better future.pptxStephen Sitton
 
Secure Key Crypto - Tech Paper JET Tech Labs
Secure Key Crypto - Tech Paper JET Tech LabsSecure Key Crypto - Tech Paper JET Tech Labs
Secure Key Crypto - Tech Paper JET Tech Labsamber724300
 
Introduction to Artificial Intelligence: Intelligent Agents, State Space Sear...
Introduction to Artificial Intelligence: Intelligent Agents, State Space Sear...Introduction to Artificial Intelligence: Intelligent Agents, State Space Sear...
Introduction to Artificial Intelligence: Intelligent Agents, State Space Sear...shreenathji26
 
Katarzyna Lipka-Sidor - BIM School Course
Katarzyna Lipka-Sidor - BIM School CourseKatarzyna Lipka-Sidor - BIM School Course
Katarzyna Lipka-Sidor - BIM School Coursebim.edu.pl
 
Indian Tradition, Culture & Societies.pdf
Indian Tradition, Culture & Societies.pdfIndian Tradition, Culture & Societies.pdf
Indian Tradition, Culture & Societies.pdfalokitpathak01
 
Python Programming for basic beginners.pptx
Python Programming for basic beginners.pptxPython Programming for basic beginners.pptx
Python Programming for basic beginners.pptxmohitesoham12
 
ADM100 Running Book for sap basis domain study
ADM100 Running Book for sap basis domain studyADM100 Running Book for sap basis domain study
ADM100 Running Book for sap basis domain studydhruvamdhruvil123
 
Comprehensive energy systems.pdf Comprehensive energy systems.pdf
Comprehensive energy systems.pdf Comprehensive energy systems.pdfComprehensive energy systems.pdf Comprehensive energy systems.pdf
Comprehensive energy systems.pdf Comprehensive energy systems.pdfalene1
 
Uk-NO1 Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Exp...
Uk-NO1 Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Exp...Uk-NO1 Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Exp...
Uk-NO1 Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Exp...Amil baba
 
AntColonyOptimizationManetNetworkAODV.pptx
AntColonyOptimizationManetNetworkAODV.pptxAntColonyOptimizationManetNetworkAODV.pptx
AntColonyOptimizationManetNetworkAODV.pptxLina Kadam
 
Substation Automation SCADA and Gateway Solutions by BRH
Substation Automation SCADA and Gateway Solutions by BRHSubstation Automation SCADA and Gateway Solutions by BRH
Substation Automation SCADA and Gateway Solutions by BRHbirinder2
 
Theory of Machine Notes / Lecture Material .pdf
Theory of Machine Notes / Lecture Material .pdfTheory of Machine Notes / Lecture Material .pdf
Theory of Machine Notes / Lecture Material .pdfShreyas Pandit
 
Gravity concentration_MI20612MI_________
Gravity concentration_MI20612MI_________Gravity concentration_MI20612MI_________
Gravity concentration_MI20612MI_________Romil Mishra
 
March 2024 - Top 10 Read Articles in Artificial Intelligence and Applications...
March 2024 - Top 10 Read Articles in Artificial Intelligence and Applications...March 2024 - Top 10 Read Articles in Artificial Intelligence and Applications...
March 2024 - Top 10 Read Articles in Artificial Intelligence and Applications...gerogepatton
 
CS 3251 Programming in c all unit notes pdf
CS 3251 Programming in c all unit notes pdfCS 3251 Programming in c all unit notes pdf
CS 3251 Programming in c all unit notes pdfBalamuruganV28
 
A brief look at visionOS - How to develop app on Apple's Vision Pro
A brief look at visionOS - How to develop app on Apple's Vision ProA brief look at visionOS - How to develop app on Apple's Vision Pro
A brief look at visionOS - How to develop app on Apple's Vision ProRay Yuan Liu
 
The Satellite applications in telecommunication
The Satellite applications in telecommunicationThe Satellite applications in telecommunication
The Satellite applications in telecommunicationnovrain7111
 
22CYT12 & Chemistry for Computer Systems_Unit-II-Corrosion & its Control Meth...
22CYT12 & Chemistry for Computer Systems_Unit-II-Corrosion & its Control Meth...22CYT12 & Chemistry for Computer Systems_Unit-II-Corrosion & its Control Meth...
22CYT12 & Chemistry for Computer Systems_Unit-II-Corrosion & its Control Meth...KrishnaveniKrishnara1
 
Novel 3D-Printed Soft Linear and Bending Actuators
Novel 3D-Printed Soft Linear and Bending ActuatorsNovel 3D-Printed Soft Linear and Bending Actuators
Novel 3D-Printed Soft Linear and Bending ActuatorsResearcher Researcher
 

Recently uploaded (20)

Guardians of E-Commerce: Harnessing NLP and Machine Learning Approaches for A...
Guardians of E-Commerce: Harnessing NLP and Machine Learning Approaches for A...Guardians of E-Commerce: Harnessing NLP and Machine Learning Approaches for A...
Guardians of E-Commerce: Harnessing NLP and Machine Learning Approaches for A...
 
Turn leadership mistakes into a better future.pptx
Turn leadership mistakes into a better future.pptxTurn leadership mistakes into a better future.pptx
Turn leadership mistakes into a better future.pptx
 
Secure Key Crypto - Tech Paper JET Tech Labs
Secure Key Crypto - Tech Paper JET Tech LabsSecure Key Crypto - Tech Paper JET Tech Labs
Secure Key Crypto - Tech Paper JET Tech Labs
 
Introduction to Artificial Intelligence: Intelligent Agents, State Space Sear...
Introduction to Artificial Intelligence: Intelligent Agents, State Space Sear...Introduction to Artificial Intelligence: Intelligent Agents, State Space Sear...
Introduction to Artificial Intelligence: Intelligent Agents, State Space Sear...
 
Katarzyna Lipka-Sidor - BIM School Course
Katarzyna Lipka-Sidor - BIM School CourseKatarzyna Lipka-Sidor - BIM School Course
Katarzyna Lipka-Sidor - BIM School Course
 
Indian Tradition, Culture & Societies.pdf
Indian Tradition, Culture & Societies.pdfIndian Tradition, Culture & Societies.pdf
Indian Tradition, Culture & Societies.pdf
 
Python Programming for basic beginners.pptx
Python Programming for basic beginners.pptxPython Programming for basic beginners.pptx
Python Programming for basic beginners.pptx
 
ADM100 Running Book for sap basis domain study
ADM100 Running Book for sap basis domain studyADM100 Running Book for sap basis domain study
ADM100 Running Book for sap basis domain study
 
Comprehensive energy systems.pdf Comprehensive energy systems.pdf
Comprehensive energy systems.pdf Comprehensive energy systems.pdfComprehensive energy systems.pdf Comprehensive energy systems.pdf
Comprehensive energy systems.pdf Comprehensive energy systems.pdf
 
Uk-NO1 Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Exp...
Uk-NO1 Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Exp...Uk-NO1 Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Exp...
Uk-NO1 Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Exp...
 
AntColonyOptimizationManetNetworkAODV.pptx
AntColonyOptimizationManetNetworkAODV.pptxAntColonyOptimizationManetNetworkAODV.pptx
AntColonyOptimizationManetNetworkAODV.pptx
 
Substation Automation SCADA and Gateway Solutions by BRH
Substation Automation SCADA and Gateway Solutions by BRHSubstation Automation SCADA and Gateway Solutions by BRH
Substation Automation SCADA and Gateway Solutions by BRH
 
Theory of Machine Notes / Lecture Material .pdf
Theory of Machine Notes / Lecture Material .pdfTheory of Machine Notes / Lecture Material .pdf
Theory of Machine Notes / Lecture Material .pdf
 
Gravity concentration_MI20612MI_________
Gravity concentration_MI20612MI_________Gravity concentration_MI20612MI_________
Gravity concentration_MI20612MI_________
 
March 2024 - Top 10 Read Articles in Artificial Intelligence and Applications...
March 2024 - Top 10 Read Articles in Artificial Intelligence and Applications...March 2024 - Top 10 Read Articles in Artificial Intelligence and Applications...
March 2024 - Top 10 Read Articles in Artificial Intelligence and Applications...
 
CS 3251 Programming in c all unit notes pdf
CS 3251 Programming in c all unit notes pdfCS 3251 Programming in c all unit notes pdf
CS 3251 Programming in c all unit notes pdf
 
A brief look at visionOS - How to develop app on Apple's Vision Pro
A brief look at visionOS - How to develop app on Apple's Vision ProA brief look at visionOS - How to develop app on Apple's Vision Pro
A brief look at visionOS - How to develop app on Apple's Vision Pro
 
The Satellite applications in telecommunication
The Satellite applications in telecommunicationThe Satellite applications in telecommunication
The Satellite applications in telecommunication
 
22CYT12 & Chemistry for Computer Systems_Unit-II-Corrosion & its Control Meth...
22CYT12 & Chemistry for Computer Systems_Unit-II-Corrosion & its Control Meth...22CYT12 & Chemistry for Computer Systems_Unit-II-Corrosion & its Control Meth...
22CYT12 & Chemistry for Computer Systems_Unit-II-Corrosion & its Control Meth...
 
Novel 3D-Printed Soft Linear and Bending Actuators
Novel 3D-Printed Soft Linear and Bending ActuatorsNovel 3D-Printed Soft Linear and Bending Actuators
Novel 3D-Printed Soft Linear and Bending Actuators
 

Diving into Android Enterprise APIs with CalyxOS.pptx

  • 1. DIVING INTO ANDROID ENTERPRISE APIS WITH CALYXOS Aayush Gupta
  • 2. About Me • Independent Contractor • Android Dev @ The Calyx Institute • Senior Staff & DevRel @ XDA Developers • Organizer @ GDG Bhilai • FOSS Contributor DIVING INTO ANDROID ENTERPRISE APIS WITH CALYXOS 2 MARCH 23
  • 3. Agenda • About Us (Institute & OS) • Android Enterprise APIs • CalyxOS & Work Profiles • Bellis (Work Profile Manager) • More Features MARCH 23 DIVING INTO ANDROID ENTERPRISE APIS WITH CALYXOS 3
  • 4. ABOUT US The Calyx Institute and CalyxOS MARCH 23 DIVING INTO ANDROID ENTERPRISE APIS WITH CALYXOS 4
  • 5. The Calyx Institute • A Non-Profit Education and Research Organization • Devoted to Studying, Testing, Developing and Implementing Privacy Tech & Tools • Develops & Maintains CalyxOS MARCH 23 DIVING INTO ANDROID ENTERPRISE APIS WITH CALYXOS 5
  • 6. CalyxOS • Alternative Android Firmware based upon AOSP • User friendly • Focuses on Privacy & Security • Completely FOSS MARCH 23 DIVING INTO ANDROID ENTERPRISE APIS WITH CALYXOS 6 /CalyxOS /CalyxOS
  • 7. ANDROID ENTERPRISE APIS A set of APIs and other tools provided by Google for developers to build enterprise management solutions for Android devices. MARCH 23 DIVING INTO ANDROID ENTERPRISE APIS WITH CALYXOS 7
  • 8. Android Enterprise APIs Android provides organizations with a secure and flexible mobility platform— combining devices, apps, and management. • Work Profiles • Managed Configurations • Dedicated Devices • Single Sign-On (SSO) MARCH 23 DIVING INTO ANDROID ENTERPRISE APIS WITH CALYXOS 8
  • 9. Work Profiles A self-contained profile on an Android device that isolates work apps and data from personal apps and data. • Controlled by an IT Admin • Separate Apps & Data From Personal Profile (Primary) • Also referred as Managed Profiles • Most Intent Do Not Cross Profiles • System Apps Can Be Limited • Separate Storage Areas MARCH 23 DIVING INTO ANDROID ENTERPRISE APIS WITH CALYXOS 9
  • 10. Managed Configurations Managed configurations, allow the organization's IT admin to remotely specify settings for apps • Enables IT Admin to Change App Settings • Previously Known as Application Restrictions MARCH 23 DIVING INTO ANDROID ENTERPRISE APIS WITH CALYXOS 10
  • 11. CALYXOS & WORK PROFILES Features and Development MARCH 23 DIVING INTO ANDROID ENTERPRISE APIS WITH CALYXOS 11
  • 12. CalyxOS & Work Profiles • Created & Managed by User • Cross-Profile Sharing (In-App Share) • Permission Auto-Revoke for Work Profiles • File Operations Across Profiles (Files App, Work Instance) • Connected Work & Personal Apps • Apps & Content Access Management (Bellis) MARCH 23 DIVING INTO ANDROID ENTERPRISE APIS WITH CALYXOS 12
  • 13. BELLIS Bellis is a Work Profile manager app, based upon the Android BasicManagedProfile Sample. MARCH 23 DIVING INTO ANDROID ENTERPRISE APIS WITH CALYXOS 13
  • 14. Bellis • Based upon the Android BasicManagedProfile Sample • Simple and Easy UI/UX • Kotlin and Material3 • Compatible With Both AOSP and Gradle Build Systems MARCH 23 DIVING INTO ANDROID ENTERPRISE APIS WITH CALYXOS 14
  • 15. Bellis (Cont.) • Primary Button Triggers Provision • Once Provision is Complete, Bellis receives an Activity Intent, Namely ACTION_PROVISIONING_SUCCESSFUL • Bellis Sets Profile Name & Owner, Enables Default Apps and Removes Some Restrictions • Redirects User to Setup Wizard MARCH 23 DIVING INTO ANDROID ENTERPRISE APIS WITH CALYXOS 15
  • 16. MARCH 23 DIVING INTO ANDROID ENTERPRISE APIS WITH CALYXOS 16 private fun provisionManagedProfile(context: Context) { val intent = Intent(DevicePolicyManager.ACTION_PROVISION_MANAGED_PROFILE).apply { val component = BasicDeviceAdminReceiver.getComponentName(context) putExtra(DevicePolicyManager.EXTRA_PROVISIONING_DEVICE_ADMIN_COMPONENT_NAME, component) putExtra( DevicePolicyManager.EXTRA_PROVISIONING_MODE, DevicePolicyManager.PROVISIONING_MODE_MANAGED_PROFILE_ON_PERSONAL_DEVICE ) } try { startForResult.launch(intent) activity?.finish() } catch (exception: ActivityNotFoundException) { Toast.makeText( context, context.getString(R.string.managed_provisioning_not_enabled), Toast.LENGTH_SHORT ).show() } } [Bellis Code]
  • 17. MARCH 23 DIVING INTO ANDROID ENTERPRISE APIS WITH CALYXOS 17 class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.main_activity) when (intent.action) { DevicePolicyManager.ACTION_PROVISIONING_SUCCESSFUL -> { PostProvisioningHelper.completeProvisioning(this) launchSUW() } } } private fun launchSUW() { val setupWizard = "org.lineageos.setupwizard" val setupWizardActivity = ".SetupWizardActivity" val intent = Intent(Intent.ACTION_MAIN).apply { setClassName(setupWizard, setupWizard + setupWizardActivity) addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) } startActivity(intent) } } [Bellis Code]
  • 18. MARCH 23 DIVING INTO ANDROID ENTERPRISE APIS WITH CALYXOS 18 Bellis (Cont.) • On Completing Setup, User Finds Themselves On Bellis (Work Profile Instance) • Fragment Contains Two Buttons Allowing Users Either To Manage or Delete Work Profile • Manage Button Launches Intent in Settings App • Delete Button Shows DialogFragment for Deleting Work Profile
  • 19. MARCH 23 DIVING INTO ANDROID ENTERPRISE APIS WITH CALYXOS 19 override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) view.findViewById<Toolbar>(R.id.toolbar)?.setOnMenuItemClickListener { when (it.itemId) { R.id.removeProfile -> RemoveProfileDialogFragment.show(this) else -> Log.d(TAG, "Unexpected itemId: ${it.itemId}") } true } view.findViewById<View>(R.id.app_and_content_access)?.setOnClickListener { val intent = Intent(userSettings).apply { addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY) putExtra(Intent.EXTRA_USER, Process.myUserHandle()) } it.context.startActivity(intent) } } [Bellis Code] Intent("android.settings.USER_SETTINGS").apply {
  • 20. MARCH 23 DIVING INTO ANDROID ENTERPRISE APIS WITH CALYXOS 20 UserHandle userHandle = getIntent().getParcelableExtra(Intent.EXTRA_USER, UserHandle.class); if (userHandle != null) { int userId = userHandle.getIdentifier(); if (mUserManager.isManagedProfile(userId)) { openUserDetails(mUserManager.getUserInfo(userId), true); } } [Settings Code]
  • 21. MORE FEATURES Other Options, Security Levels, Multiple Profiles and more MARCH 23 DIVING INTO ANDROID ENTERPRISE APIS WITH CALYXOS 21
  • 22. Other Options • Contains Options Used by Users Frequently (Contained in Developer Options) for Security & Privacy Gains • Maintains Security Requirement for Certain Switches • Available When DISALLOW_DEBUGGING_FEATURES Restriction is Set MARCH 23 DIVING INTO ANDROID ENTERPRISE APIS WITH CALYXOS 22
  • 23. Multiple Profiles • Allows Provisioning Multiple Managed Profiles • Isolate apps not just from your workplace but from each other • Turn off entire sets of apps at once • Protect and encrypt some apps with a separate passphrase • Use different VPNs for different profiles • Currently in Development MARCH 23 DIVING INTO ANDROID ENTERPRISE APIS WITH CALYXOS 23
  • 24. Security Levels • Configurable Device Security Level • Offers Three Different Levels, Inspired From Tor Browser • Standard Offers Default Features • Safer Builds Upon Standard, Sets Default Timeout for Wi-Fi, Bluetooth and Device Reboot, Sets Orbot as Always-On-VPN • Safest Builds Upon Safer, Sets DISALLOW_INSTALL_UNKNOWN_SO URCES_GLOBALLY and DISALLOW_DEBUGGING_FEATURES Restrictions, and More • Currently in Development MARCH 23 DIVING INTO ANDROID ENTERPRISE APIS WITH CALYXOS 24