Hello everyone, welcome to this Upstiking Android workshop, Train the Trainers. I'm Max, and yeah, today we want to talk, first of all, I'm happy that you're all here. And today we have four different talks. First of all, Eric, who will talk about the Upstiking Android campaign, then myself, talking about the workshops that we've done and the insights that we've gotten from the workshops. And then Marvin is going to talk about MicroG. He's the main developer for MicroG. And finally, Hans Christof is going to close it up with Aphdroid to talk about Aphdroid and he's the lead maintainer of Aphdroid. So with that, I'm handing it over to Eric. Yeah, thank you very much. Thank you very much, Max. I switch the slides here a second. Okay, cool. Great to see so many people here. Unfortunately, I'm pretty sick. So I hope I manage my talk without having too much coughing in between. I will do my best and the good news on this is I keep it short and to the point. So the upside, by the way, you can, so there is, as you have seen on the slide before, there's 30 minutes. There's a 30 minutes slot now for this. I'll talk 30 minutes. And in the end of my presentation, you will have the time for questions and answers and these things. So let's get it started. The upcycling Android campaign. I will try to give some background on that. Yeah, many people are wondering or asking us because they have heard or know about the free Android campaign. Now we have an upcycling Android campaign and I wanted to shed some light. What is the difference? Why is the difference? The free Android campaign was a campaign many years ago. Meanwhile, 10 years ago that we have started that campaign and that was in a time when very few people have or knew about free software operating systems on mobile phones. So back in time, our main goal was to promote these free software already existing, which were very few, but there were some free software operating systems that you can use to replace the Google's Android. And by doing this, achieve freedom and being in control of your device. We already had a public campaign on that and we're giving some workshops trying to help people flashing their phones because this was even more difficult 10 years ago than it is nowadays. So that's how we started with, with the world of free software on mobile phones. And yes, and like the main running time of that campaign that was like from 2013 to 15 and after that we mainly concentrated on promoting asteroid and the idea behind flashing phones but not so much anymore on a concrete campaign as we have before. Then some years later, exactly eight years later we picked up this idea again. So many things have changed. There is nowadays a diverse choice of free software operating systems out there and instead of mainly having the goal to let people know about that there is a free software alternative available for your phone. This time we wanted to shed light on how you can use these free software operating systems to extend your hardware lifetime. How this works in concrete I will just talk in the next chapter. So I leave it here for now. And again we had this basically the same method where we were setting up a public campaign and doing workshops and are still doing workshops for people to get them started with flashing their phones. So where's the difference? Of course the time, the running, the main running time we already had that, I mean the eight years difference and there's also the different target groups so free Android was the main target group like people who love free software and then getting because as I said back then it was not so well known so getting them the knowledge about using free software on mobile phones well the upcycling and the campaign has mainly a target group and people who are aware of who like to extend their hardware lifetime who do not like to replace their phone every two years just because the manufacturer tells them to do so and are more like environmental friendly. Of course the material is different we still have material from the free Android campaign but it's kind of outdated there are apps that we have been promoted back then who are just not up to date anymore and so the material from the upside of the Android campaign is much more up to date it's also more diverse there's a video a web page and so on so the material is quite more like advanced so much about to understand this background now let's talk about the core idea about upcycling Android the core idea is free software can save lives my most beloved sentence I've ever written it can save lives of hardware how does it work there's a thing we call software obsolescence and so this picture shows you how it should how in an ideal world it should work like you buy a device a day with a software version X and then the next version comes out you install it and you go on and on and on unfortunately in our reality business world this does not work because manufacturers want to sell new phones they don't want you to use your phone for years and years they want to sell new flagship phones so what happens is after a year or two or three days they say okay there's no more support for your phone available you have to buy the new flagship phone in order to get up to date software which then in effect leads to the end of hardware because I have a security problem I have no more software that is up to date and so I just have to buy a new phone just in order to run the new version this problem can be solved with free software because there is in this very particular for the Android world there are so-called custom ROMs which are Fox from the main Android software and without the fortunately without the Google stuff and sometimes with some additional software packages and what happens here now is they don't have they don't sell hardware they don't sell a new flagship phone what they want to achieve is that you switch to their version of Android and that you're saying their version of Android so they try hard to make the new version for your old phone and this works very often so instead of having to buy a new phone you can switch to this custom ROM version and then go on and on and on how it should be this is not only true for custom ROMs which is anyway a very particular case for Android this is also true for basically any free software operating system you can also install a complete Linux system and go from there sorry and then you can go from there and use a Linux system on your phone and go on and on and on and this is not only true for mobile phones or for using mobile phones as mobile phones you can also use mobile phones are super powerful computers you can use them for many many things for phone calls and messaging you can in the world we are envisioning this is a universal computer you should be able to replace it with any free software operating system that fits on the hardware and that you want to install and then you can use it for example in your garden for automatic watering you can use it in your home for your TV media station and so on and so on so this is how free software can save lives this is the core idea of upcycling Android in a sense of reusing the resources that have been invested into producing the phone and upcycle it for a new use and we have some core environmental aspects involved that I also wanted to shed some light on so if you give the workshop this is what we just have heard this is the main idea that we usually promote in the workshop why we are running the workshop and why it is useful for people to keep using the hardware and I'll give you some environmental argumentations how that is also helpful for our planet the problem is that one of the problems is the production of phones in this case here's an apple carbon footprint report that is not Android of course but it should be very similar and it's transparent and it shows that 80% of the whole carbon footprint of an apple phone happens in the production and in the worldwide transportation and less than 20% in the actual use of the product so if we want to do something for the environment we should reduce the production and on the other side we have the problem of the e-waste so whenever I buy a new phone and I throw away my old phone I produce e-waste the global e-waste monitor counts 53 million tons of e-waste in 2019 and I think it's like 10% of them meanwhile are tablets and phones so the longer I use my phone I reduce production and I reduce e-waste and I have some numbers here because numbers sometimes show it more clear so I calculated it for the smartphone so I looked up this it says we produce 1.5 billion smartphones every year, that's a lot and as we have heard 80% of the overall carbon footprint happens in production and worldwide transportation and 10% of this is meanwhile phones and tablets and similar devices so coming back to off-site Android depending on what statistics you're looking at and who has paid the money for the research Android has a market share of 70% to 90% so let's make it easy and say okay, 66% so no one can blame me on my numbers there's still 1 billion phones then no one's also saying 50% of these people are new customers they have never had a phone before and only 50% replace their already existing phone and then it's just 500 million let's say one third of those if they would use their phone just one year longer this would be already 166 million smartphones from not having been produced every year that's what our environmental vision is behind off-site Android and it would reduce already 500,000 tons of electronic waste one second please okay, so that's the environmental aspect that we talk about in our workshops as you know the FSFE is a political organization so we also have some core political demands that we talk about in our workshops the problems that can be fixed by politics that we face nowadays are mainly I mean now we have seen free software we can use free software and we can use our hardware for a long time but it's not that easy why? because there are technical restrictions we have end-user license agreements that white warranty or other things when I do it then for the developers we have the problem of proprietary drivers and interfaces and tools so it's very hard for them to write or replace the operating system here or there or to use all the hardware from the phone with their own written operating system more and more the platform economy says okay you cannot use my service in case you're running a custom ROM on your phone and so on and so on so we have a lot of problems but we have regulations, political regulations this can be solved if we tell politicians how to do it correctly and there's a chance currently because there's a renegotiation of the European Equal Design this means the European Parliament and Council there are several directives who who make new rules for the European Equal Design of Product for example how long can a phone last how long should there should be updates and so on so this is the point where we jump in and we have written an open letter in preparation to that because we asked for the universal right to install any software on any device if you look for this open letter it's of course on fsv.org you can sign the letter, you can read it there are four core demands that I'm not having the time now to go deeper into it but the point is we as you have seen free software can save lives of hardware and in order to make more use out of this we need this universal right to install any software on any device okay the time is running five minutes more is there a question right now because actually now I would jump to totally different topic and maybe I can take two questions here because I don't see any if you have a question by the way I think we should have solved it you can either like I do it now you can make a plus here in the chat we see that you have a question or you can write the question like if you make this plus you will be able to we can call your name and you will be able to talk or you can write the question into the chat okay is that the slides will be shared yes I think so and we will share it in the wiki in the fsv wiki there's an upcycling android section that lists all the all the upcycling android workshops so it will also list this one and from there there we can post presentations and of course it's also recorded but yeah you can also get the slides okay there are no more questions right now as I see it I will move on to a different topic so if you because you are here because you also hopefully want to do a workshop on your own I told you about what could be the content of it or how we what have been the points we were talking about in a workshop and I will now tell you also in case you decide to do a workshop how the fsv can help you because of course if you do a workshop we want you to have a lot of visitors so the fsv can help you with this when you decide to do a workshop so I just told you in the fsv there is an upcycling android section there is a list of all past workshops and this one as well so you can look there there's some descriptions there's also rules that we decided for the registrations and so on so we can skip through and you can copy paste elements of that and use it as a template basically for your own workshop and of course create your own workshop also in the list so everyone knows about it in the next step your workshop will end up on the fsv's website event section so fsv.org-events we list all events organized for and by the fsv and your workshop will end up there from there it goes all the ways through our mailing list or let's say even better you use our mailing list depending on where you are we have regional mailing list so you can post there and say hey we are organizing this upcycling android workshop who has time to help hack to be there then we ourselves again have the social media accounts so we will promote your workshops on our social media accounts to make sure people who are more using social media know about it then of course we have to print the material if you text us about the workshop we will send you posters, stickers, flyers everything you need you can put it in your hacking space or wherever you are doing the workshop you can give it to your visitors and yeah and as a special feature we can also send mail to fsv supporters in a certain region so say you are doing a workshop in France in Toulouse ok let's send the mail to all fsv supporters in Toulouse and 50 kilometers around and let them know and of course in our newsletter send out monthly we will in advance also let people know about your workshop so in time one minute left there is a question from so I think you can speak just by unmuting yourself if you are doing this now I cannot hear you he only joined Aya he is joining with the microphone can you hear me? sorry I was not prepared to speak by the way more than a question was just a suggestion you were talking about the political side of this campaign which is really interesting but as far as I can see whenever you have your operating system freed let's say from google for example then a problem can be the arts because most of them rely on on google services or other dependencies which are present in the let's say usual android so the suggestion is probably they have already talked about that but my suggestion was to add to this political campaign this side because whenever you will have the free operating system on your mobile phone then it is not granted that the apps would be available or working and so the regulation should force the developers of these apps to be independent from google services or whatever all the kind of service or dependency included in the usual android that's it yeah thanks yeah should note I mean this might be a problem here and there but on the other hand I think so on one hand you can you can find help maybe in using micro g which we hear later about it in using particular apps on your free software operating system and I think it's a bit more complicated to put that on any developer having an app being universal instead of putting that on on the hardware but ok just my first guess so thank you very much my time is over and I'm handing over or giving back to Max again hey so I hope everybody can hear me I am Max and this is the second part of the workshop where I'll talk about and you can reach me via matrix or email where I'll talk about the workshop key takeaways the workshop frequently asked questions and also in the end the supporting material you have for the workshops so about the workshop key takeaways this by the way is a picture taken in Bootsen at the SFScon during one of our upcycling android workshops the first one would be to pair participants I think this is what you would normally do making small groups of people two to three people for example and pair participants that bring a phone that they want to flash with more experienced participants also known as flashes because arguably the expectation would be that the phone they bring will be flashed and that would be like a successful workshop for them and others who didn't bring a phone to flash can be paired with participants of the same skill level so they can both learn together then second key takeaways bring test devices if you have them because quite a few participants in these workshops actually we would just like to try out a custom operating system first and by custom run I always mean a free software operating system it's just same same term for that before they flash it on their own phone and then also just how to get some experience how to flash a phone which can be also non-trivial then for the third point bring extra hardware especially USB-C to USB-A cables this is the first picture in the presentation this is mainly for older laptops that only have USB-A ports and newer smartphones with USB-C ports they have some compatibility with that but also USB-A to USB-C adapters this is the second image for the other way around if you have like a newer laptop that only has USB-C ports then connecting to an older smartphone that have micro USB ports or something is very useful and bring some USB sticks always useful for data transfer and also if you have them laptops with Linux installed and the Android SDK then the fourth point is downloading factory images beforehand especially if you bring test devices you just have some factory images of a free software operating system downloaded and transferred them to the USB sticks and hand them out to the participants so this is especially useful if the Wi-Fi isn't that good at the workshop location but make sure beforehand to check and this is always a good thing to do this is quite important thing tell the participants to have to backup their data on the phone before they come with their phone to the workshop because doing this during the workshop can easily take the whole amount of time that the workshop is going for and you don't want to be doing this doing this for one person and then checking every time like what about this data and that and very time consuming task and lastly the workshop or the registration have them register before the workshop like online using some form this helps you answer two important questions one how many people are attending so you have an idea of how many helpers you would need and then also they could tell you what devices they are bringing to Flash and then you can research is there like a custom operating system Android operating system for it available if not it's going to be difficult to do to develop one on your own so just tell them probably not possible to flash a custom operating system on their phone and if yes well you could consider downloading custom ROM in advance depending on the wifi situation at the workshop location or just tell them please download the custom operating system in advance so you don't have to wait for this process to complete this brings me to the second talking point of this presentation the workshop FAQ and so there are three questions ranked by popularity that were asked and by far the most popular one was how do I choose a device to flash then can I trust an unofficial custom ROM release is distributed on the XDA forums this arose because well for the phone they bring an official linear choice release and then you can always look for the XDA forums which by the way is like a forum for custom ROM developers to exchange themselves if there's an unofficial linear choice release for example and the question is like how trustworthy are these factory images and third are Google pixel phones well suited for custom ROMs and this is because in our workshops the test devices are Google pixel phones so we bring those phones and yes they are well suited for custom Android operating systems so about the first one how do I choose a device to flash the most important question to ask yourself here is how is the support for software operating system for this device I'm interested so there are many custom operating systems on the market by far the most popular one is linear choice it has it supports a large number of devices and you might just find this device being supported for your phone that you want to buy then replicant builds on top of linear choice and puts the focus on the freedom aspect so linear choice although it's a free software operating system it uses proprietary drivers and firmware to make a fully functioning system and replicant makes the point in replacing these proprietary parts with free software counterparts unfortunately it only supports older phones older Samsung phones and then Kalex OS and the one on the right Graphene OS they are more modern operating systems for Android and they focus on privacy and the security aspect another point is important point is like how long will my device get support and this is very much in the spirit of upcycling Android for Graphene OS and I'll stick to the custom ROMs I've named before it's until the manufacturer provides updates so in this case it's Google because they only support Google Pixel phones and to give you an idea Google Pixel version 6 and newer gets 5 years of support by the manufacturer by Google and then the Google Pixel 5a and older gets 3 years and then for Kalex OS it's almost the same as Graphene OS they just support them a little bit longer until the matching Linux kernel a TS version is supported and they also almost support the same devices with the exception being Fairphone 4 right now for the Kalex OS and then for Lineage OS it's actually not that clear there are no official dates and it very much depends on the device maintainer how long he wants to support the device and he could drop the support at any time like cases where they lose their phone they break their phone get the new phone it's not the same one and then drop the support so one metric to look at that can be useful is the popularity for the device amongst users Lineage OS has a telemetry by default I think enabled so it reports how many if there's a device with Lineage OS installed to a server let me start Lineage OS.org and the top 3 devices in the number of installs as of now as of today are Xiaomi Mi5 6 and the Samsung Galaxy S7 whereby Xiaomi Mi5 and 6 are by far the most installed devices so you could or you could argue like if the maintainer drops the support for Xiaomi Mi5 among these users there's probably going to be one that is willing to pick up the support and the maintenance for this model but popularity amongst users is not the same as popularity amongst developers and for developers it's quite important what the quality of the kernel source code releases by the manufacturer are and they can be different they are very different and this makes it harder or easier to actually build as vanilla android open source vanilla android android OS based on the android open source project together with the kernel source code and two players or two manufacturers that have been known to make good high quality kernel source code releases on Google Google obviously you know overseeing the development of the android open source project and then Sony with their exterior open devices initiative and then just a few more points if you're looking to buy phone secondhand and the bootloader be unlocked this is the prerequisite to install a custom operating system on it and there are exceptions even though in general the model has a bootloader that can be unlocked for example carrier phones sold in the US and Canada they can ship with unlockable bootloaders so AT&T is an art to carriers that do that and for our workshops we bought refurbished phones and one of them is a carrier phone we didn't know that but it has an encrypted bootloader and it can't be flashed and this is hard to actually circumvent you need to reflash the firmware and that's very hard to do it's just a very advanced topic and I haven't seen anybody doing that posting about that online so second thing is the phone carrier locked often times you will see like secondhand advertisements saying there's no SIM lock and this is basically what this is about mobile phone carriers can actually lock the SIM the mobile phone to a particular SIM card and this is implemented in the modem and it's a completely different thing from the bootloader being unlockable and generally you don't want to only be using one SIM one SIM card from one specific carrier and then lastly is the phone blacklisted meaning is it a stolen or lost device and you can check that with the IM EI number so ask for that if you write second hands and then there's some websites where you can check if this is actually a blacklisted phone then for the second question can I trust unofficial releases so unofficial releases in this case often times on the XDA forums often times mean unofficial then each of us releases and the problem with these releases are there are no quality requirements so lineageOS in contrast to that has a charter where they list different things in terms of hardware in terms of software that need to be supported and on the XDA forums anybody can post their custom run builds and three important things to ask here and the most important one is the source code available if it's available the work can be carried on if the support is dropped by the current maintainer also you can audit it yourself for security and you can build a custom run yourself if you really paranoid and a lot of people can't audit a custom run for security and not build it themselves so the second point is what's the reputation of the developer has he built any other custom runs where is he active is he maybe one of the project developers at the lineageOS this also happens they post unofficial releases first on XDA for testing and then this later becomes an official lineageOS supported device and then lastly what are other user's experiences it's a forum they post in the thread what their experiences have been and this is especially useful to know like what's the state of the hardware support sometimes the camera is not working stuff like that and then lastly why are google pixel phones well suited for custom android operating systems first of all google pixel are the reference devices for the android open source project and so it's really easy to create a custom rom for it and it's very easy to flash this custom rom on the device as well and this might be the reason this is might be that google is interested in a custom rom scene around android because this scene will come back with enhancements and innovations to the android open source project and this can be contributed back upstream and in the end google just wants android to be adopted as widely as possible and for android to run on every mobile phone so they want the android open source project to be a successful project ok now for the supporting material for the workshops there's this link which points to a git repo and there we we kind of bundle all the resources we have made so far for the workshops so for one these are flashing instructions for the command line actually for google one plus and samsung phones so we actually flashed the google pixel phones we have with calyx os that has been easy the one plus phones with post market os was also not so difficult and then samsung phones with lineage os which has been more difficult for sure especially a difficult task to flash them back to the stock operating system one plus and samsung that is google they actually document that so that's not difficult but in case of one plus and samsung it's not documented and you actually might want to do that sometimes to get the newest firmware and newer drivers and then the FAQ I just talked about these three questions from the workshops written in more detail that's in a document that's also in the workshop materials and then lastly live usb linux images with android sdk installed and these factory images also included and I think I didn't talk about that first but I mean the main reason for that is because people sometimes have windows pc and not used anymore to working on a windows pc you need to install some weird drivers to actually be able to talk to the phone and so we rather have them boot linux operating system and then work from there to flash the phone and this is my last slide so do we have any questions question by alec sandro when where will the workshop be organized but this is referencing something else no? or can you elaborate what you mean? yes just try to plus if you have a question sorry yeah I know I understand so for alec sandro's question he is interested in participating how can he be informed about the next workshops for flashing phones android phones so it's going to be announced on the website so you have fsfe.org slash events I think it's also there's also an rss feed so you can be informed via that as Eric said there's going to be a post in the wiki forums and it's about it I think and we will post it on mastodon but this is a thing more short term is there a list of all costume rooms we can trust okay so first for alec's question is there a list of all costume rooms we can trust well I would say you can trust the costume rooms that are actually open source and there's a wikipedia site listing all the costume rooms I can post it later so yeah and these you can trust I would say and then for gabrie ponzo's question whatever device is not supported yes this in the workshops when people say or email me that they have a device and I look for a costume room for it and it's not supported I mean it's a lot of work to and they can make it very hard for you the manufacturers to actually develop one a costume room so I tell them it's not possible of course if you're really up for the task you can develop a costume room yourself for the device just give up yeah I mean go on the xda forums maybe somebody has been you know quicking something up and they can share that but yeah it's yeah it's it's a difficult task to develop a costume room what to do if it all goes wrong and as a trainee you lack the experience by nico so yes I think this could have been a question because I didn't do that many workshops yet but this could have been a question in the workshops as well like what how likely is it that I break my device breaking means like render it unusable but I think this is maybe a problem of the past as well not for the newer devices that much always have like a failsafe so there you can be pretty sure that you can recover from and most of the bricks the so called bricks are actually soft bricks so you can reset them with some firmware tools the devices that is yeah what Kevin says like make the research first about the phone you're about to buy this is the link I was talking about I think I was thinking about the list of costume Android distributions yes and there they have a column about open source and we'll tell you what is actually open source and what not thank you Oliver you're welcome so let me check okay I'm not sure right now if that and was intended but the times anyway come yeah I'm just writing Marvin right now making sure that he is able to do the next presentation okay so next in a row as we can see is Marvin giving us some insights on micro G is the person who can tell us why micro G rocks and can we give him the presenter okay can everyone see the slides does it work yes we can hear you thank you alright so yeah I'm going to talk a little bit about micro G I have recycled some very old slides because I apparently haven't done a presentation about micro G for several years now so let's see if that works out so yeah so the first thing I'm not sure if anyone of you has not heard about micro G yet so but I'm starting here as if it was the case so the one the pitch sentence that at some point I brought up to describe what micro G is that's it is the framework consisting of libraries services and patches to create a fully compatible Android distribution that comes without any proprietary component so that's just the pitch but now we want to understand what that actually means so I'm going a few steps back and looking into what Android actually is so as you probably have heard Android is an open source project or the AOSP is an open source project and this project includes a lot of stuff that is needed to actually have a fully operational operating system and you know it has a the boot loader it contains a Linux kernel has something so they can talk to various kind of hardware like which means drivers and also some user space components it also has like a load of system services so that applications that use it have some services they can connect with and then get some nice features from the device it does have some Java virtual machine so that all applications that typically are in Java or a language that compiles to the Java virtual machine can be used and then it has a large framework with a lot of APIs so that the application development is much easier and then it also comes with some very basic applications for the end user things like a clock app or a calendar so that you have your base operating system without needing third-party applications for that and all of these components that I mentioned here are open source developed mostly by Google there is some inputs from both open source community and basically device manufacturers but the large majority is actually developed by Google but when we're talking about Android open source project or when we're talking about Android we're not only talking about the Android open source project but we're talking typically about what is a device and there's a few things that are typically added to what is called Android that are not part of AOSP which basically is three parts it is extensions to the application framework so it adds more features that applications can use this does not happen that often anymore it was very popular in the early days of Android nowadays most features that you need are actually in the AOSP application framework but back then for example if you wanted to support our audio output with more than two channels more than stereo then you needed some extension and some manufacturer actually provided that extension not open source and at some point Google made some alternative to that and made it open source now we don't have that framework extensions a lot anymore but it's still very popular basically or used in basically every device is white wine which is a DRM system which intentionally is not open source and we have service apps those typically have to provide some services to the operating system that are run in the background are not seen by the user itself but they can also be used for party apps and those have various different things they can do and the most popular one of them is actually also from Google which I will talk about in a minute and then we also have on typically Android distributions a few more end user apps than the ones officially integrated in AOSP very popular one is probably the Play Store which people use to download applications but also many manufacturers at their own applications or ship with third party applications that they think are useful for the user to have on the device alright so what do we have from Google in there specifically besides obviously those things from the manufacturer Google also pushes a lot of stuff on those devices basically enforced through the licensing of the Play Store and those provide a lot of features and I listed a few here which is some of you you might have already heard about but I will go through all of them so the first is M and Wi-Fi based location it's basically or it's also called Fomance GPS which basically means that your phone can find your location without having to actually use a GPS or alternative GNSS system which basically means that you can get information about your location much faster and even more accurate and especially in buildings then it would have been possible to have a satellite based system second is maps in-app maps so basically if you have some application and it wants to display maps in there when maybe you have some nice markers on it and they allow you to select some location or something then often these applications do not want to ship with a full blown map renderer and so on which is provided by Google that is already installed on most devices that offers maps that was exactly that feature then another important component is push notifications which basically is an important part of making sure that your device battery time is much better because if applications keep having background connections to a service and all applications do that it could be bad for the battery or it could consume a lot of battery and then your phone would not last as long so that is something very useful but it is also not open to it but it is provided by Google as a proprietary component then there is a computer vision SDK which has a lot of features actually but besides the QR code scanning nobody uses anything of it so you could even call a QR code scanning SDK if you wanted to and obviously I guess you have already seen applications that actually have a QR code scanner in there and they might be using that SDK then the exposure notifications feature which was added in well 2020 for COVID related matters to basically allowed tracking not tracking tracing of exposures so that you can be warned when there is someone that you have been in close contact with in the last days then you can get a notification for that which the system is also not open source when Google published the first version they announced that they will make it open source in the future version of Android and they are just putting it as part of their close system so that they can easily update it without having any problem with manufacturers but that open source never happened then we have the device connectivity for FIDO or universal second factor devices so these devices like UB key or NITO key that you can connect to your computer and use it as a security key and on Android the way to connect to those or the intended way to connect to those is through a proprietary component like Google there is also other security related thing like the TLS library that is part of Android tends to be a little bit outdated in the past we had some you might remember things like severe issues in TLS libraries in the past so at some point it was considered a good idea to make the TLS library updateable independent of the operating system and also this is actually a part of the proprietary Google component there is also other stuff that I haven't here on the slides but I guess we can if you have a specific question about one of them we'll cover that later so that's all kind of stuff from Google and as I mentioned MicroG is basically about replacing those so providing an alternative that is fully compatible with what Google built so that applications that use these services or components run without any modifications so that you can just install the application from the developer just like they built them and run it on your device even if you don't have the Google services on it and then we obviously don't want to do it exactly the same way as Google did but we want to not send as much data to Google so that users can have some more privacy and at the same time we want to try to also reduce the energy consumption of these services which may sound like it's something hard but if you're just skipping all the tracking and telemetry then you're already doing a good step in that direction so that's kind of like for free but it's also a very good thing especially when we're talking about older devices which often have not as good batteries anymore so what the current status basically most of the relevant features of Google services are implemented nowadays we have maps and we're using OpenStreetMap instead of Google of course then we have the gsm-based location in this case using a service provided by Mozilla we have the push notifications which you still have to run through the Google servers but of course the user can decide to not actually enable them if they don't want to have so they do not have to have a persistent connection to Google servers if they don't want to actually use push notifications through Google servers for example if they want to rely on a third party system or an alternative system and basically they have a risk that some apps might not be getting push notifications then that's perfectly possible as well and then we also have all these other features that I mentioned implemented and of course all of them without any telemetry and when possible without any network connectivity at all which is the case for many of these APIs that they actually do not need network connectivity because the logic can be purely on the device itself we also have some for some of the also often used features that we have not implemented we at least added some subs so that apps that try to use these features will not crash or cause any problems but we'll just think that for example you do not have any contacts in your Google account if you are I mean if the application would want to know that so some apps ask for give me the contacts of the Google account which would then normally the Google system also to confirm that they want to share the contacts with that application and in our case we just skip all that and just return an empty list of accounts of contacts so yeah that's the current status but important to notice is Google Play Services is evolving so many of the features we have now only happened or only were added or largely changed within the last two or three years like the COVID warnings also the FIDO universal second factory system changed largely in the last years with the development of WebOSN which is a new standard to use those devices so yeah the development is obviously still ongoing and also in many of the features we just have them in the way where it works good enough for daily usage but not necessarily 100% feature complete so adding new features and improving them is still something that is going on so yeah that's basically the short summary about microd so we have some quite some time for questions now with little passes and I thought that I would be so okay banking apps good good topic so many banking apps use a system called safety net but some banking apps at least do that and we do have an implementation of this thing called safety net which is a proprietary system of Google the implementation works by basically downloading a blob and running it in a sandbox not that nice but the only way to actually running it's kind of like a DRM system and it has a special feature that the problematic feature compared to other DRM systems that just reverse engineering the current version doesn't really help because they can easily just update and they do that regularly so yeah the only way to use safety net is to actually actually run it which we can do support depending on the device of course but not all devices also support safety net with custom ROMs so that's another issue banking apps that do not use safety net typically do not have any problems with micro G they might have still problems with custom ROMs so there's some banking apps that try to detect if the ROM is operating system used as the original manufacturer operating system and if they detect something like the nature as being used they might want to not run on that device but that's independent of micro G and would also happen if you had installed the original Google services on the custom operating system OK, it's your target if you want you can unmute yourself Yes, thank you Do I use micro G or do I use it on top of the stock ROM or do I use it on top of the custom ROM I had once I did remove Google services on a normal stock ROM I'm not sure how I can set it up Yeah, so the best and easiest way to use micro G is to use it with a custom ROM that already has it integrated Calyx or S would be an example there's also a Lineature S fork called Lineature S for micro G which includes micro G so that's by far the easiest and also the best way to install it you can also install it in custom ROMs that modifying the custom ROM before or while installing it which also is reasonably possible technically it is also possible to modify the the stock ROM basically to include to remove Google services and instead include micro G I have done that in the past for someone but I would say that if you're not willing to put a lot of time and effort into it it's not really a useful alternative Great, thank you It was clear Okay, if there are no further questions right now thank you very much Marvin for this very interesting presentation then it's time to move over to Hans Christoph in case he's already here are you here if not then we have a 10 minute break because we told Hans Christoph to be here at 7.30 use this then now that's a short break so in case you want to refresh your water go to the bathroom anything this is the time and see you here at 7.30 in 8 minutes with Hans Christoph talking about effort. Okay, thank you very much for your patience it looks like Hans Christoph has issues and is not here Yeah, I'm trying to contact him right now but doesn't seem to be available So then I say we can start with a general question and answer session so if you want to organize a workshop but you still need to know and where we can at you Is it possible to ask a question? Sure, let's know the time to ask a question I generally let's make a plus here in the chat or you can write a question in there so then we have an order Okay, so I actually have a question you talked about using the android phones just as phones and I had an idea to use it as a server or something like this so you can use it as some kind of like Raspberry Pi or something like this and also you can connect with Arduino because also there is like many of them and you can have GPIOs, do you thought about using the old phones in this kind of way? I mean as I have shown this in the presentation, yes of course I mean we have this in when we think about the political demands that we have in the universal right to install any software, any device but in our workshops this is not a topic, I mean we would love to see people who come and tell us stories about some creative hacks they have done or planning to do with their phones but this is usually not part of our workshops and so I have no particular stories here to share but yes, if you have and also I think it could be very interesting actually so if you do workshops and there are people who have a creative use of their phones in an afterlife or something then it would be really interesting if you can share this with us so we can also I don't know you might make a news about it or put it in a newsletter because these are the examples that show why phones are not only phones but are universal computers I was like okay no please go ahead I just wanted to say that I tried to do this with Thermmax and there is also another application but I don't remember the name it's also like allowing you to emulate the Linux on your phone I forgot the name there is like only two of them and actually I failed that's why I asked what? no no only way I had because I don't have any phones that are like able to run Linux I just used the linear choice and tried to emulate Linux inside of them and actually I failed that's why I was asking but I have seen this in mind so I hope I cannot do this are you thinking about Thermmax maybe? yes exactly and there is also another one I don't have my phone with me but I forgot the name I don't know what Thermmax is I know about Thermmax so that's kind of giving you access to a command line and some packages that you can install yes but I had problem with this it was pretty long time ago but I had some problem with this I use a LAN to use a LAN I use a LAN and then by the way one of his first message one of the first is he said something about a Dutch podcast where somebody said they had managed to run an next cloud server on their phone so I don't know which podcast he was talking about but yeah it's definitely possible to use it as a next cloud instance then there is a question from Oliver saying how huge is the threat if you use an old android you mean what do you mean is the threat of breaking the phone or what exactly is the threat here it means threats and like danger so the threat of using an old android I can answer that question I think so Graphino has for that reason they drop the support as soon as the manufacturer in this case google doesn't give any more security updates for it because security updates also includes updates for the firmware and the proprietary drivers and yeah if these are not updated anymore this can also pose a security risk so it's definitely not as safe as one of the newer phones but these security threats can also be derived from the android OS so this is also a thing if you have an older phone but the newest android version on it I don't think it's such a big issue sure you're welcome for questions or maybe you can also be interested who's actually planning a workshop here maybe you can put a we have a question but so if you want to enable your microphone you can ask a question or write it in the chat can you hear me so I have been using I haven't been unlocking phones since 2016 and I'm interested if some workshop is going to happen for a future workshop but also I want to talk about something well I like android I think it has lots of problems as well for development because most of the development relies on the android studio mostly I don't know any good alternative to that although some components that are useful for unlocking the devices already exist as packages, as standalone packages the development isn't it's much harder than for example trying to write something for if the device run on like Linux based a pure Linux distribution it's my opinion on this I don't know if someone agrees or disagrees I want to I want to know your opinion about that the first question was if there is any alternative to android studio I think in the end it's just an IDE you can program in any IDE and then have the developer tools in the command line so I don't think you're bound to that all of nice features like the emulator and so on and the second question was android I'm not sure actually is it that Linux is easier to develop on the phones than android maybe you can phrase your second question again I mean generally I think I think this is not the best location to discuss developing methods on in android, in Linux and phones here's about the workshops we can happily talk about developing apps for phones at some other session but let's for now stick here to the workshops because the workshops do not have nothing to do with the other I see so I think I would like to see what's going to happen with future workshops as I would be very I would be glad to help any people who are interesting in flashing devices I had quite a I mean in my second device right now that is purely flashed so yeah it's an interesting trying to excuse me maybe you can just recall how because you also just said you are interested in running a workshop so let's recall how running a workshop so obviously the most important thing is don't do it alone get some get some friends helping you no matter the background as long as they can flash phones that's fine and get a location of course so yeah we have the we were running our workshops with a ratio of four to five persons per trainer per person who knows how to flash phones and once you have settled it then you can write a mail upcycling let's put it into the chat upcycling and then you can say hey we are planning the workshop we want to run it on this and that date and this and that town can you help us the message out can we have a short call or something about what to do what to think about and then we can figure it out I think these are the most the most basic information to take away from here if you want to do a workshop find some friends to do it together find a location and then write to upcycling at azubi.org and we figure it out how we can help you in doing that I don't know questions about the workshops or process the material so yeah just regarding the question from Gabri he was wondering about his phone not getting any official support from linux anymore I think they just might have dropped it but often times some people continue providing support unofficially on the xda forums and yeah just check the three points I mentioned I mean the most important one being it's open source there's an open source version of it on xda and you can use that generally speaking question by Sears you can unmute yourself I do I'm thinking about organizing a workshop I have so much experience to flash some tones by myself some with lineaos OS with dvist OS I tried I tried with touch postmarker OS you said you should do it not alone but I don't have any people I know who I should do it together maybe I can find somebody but I just like the idea to try it and to look what happens and what kind of people I can maybe to provide some phones which are flexible and people can use I just always buy the most cheap phones on ebay and just try it the risk is not so big if it is not working what I would like to share now so I think the question being if there are any people in your area that could help you I mean I think we already addressed the question like how can you organize the workshop and promote it via our channels and where are you based I think near by Bielefeld so yeah we if you announced that we can definitely share it via our channels and there might be some you know some mailing list for isn't that Rheinland Bielefeld I'm not sure yeah also Germany mailing list so we have local mailing list where you can say hey I want to do an outside ligand workshop there is someone here who wants to join me and or you can send a mail what I said to supporters in the region of Bielefeld 20 kilometers around saying hey hi I'm Seard I would love to do an outside ligand workshop with someone here joining me and then you can connect oh yeah okay yeah it's about 50 kilometers from Bielefeld so it's a little bit here's another someone quickly we're saying tomorrow there's a workshop in Cologne we're interested in going there at 4 p.m 4 to 8 we have it announced on our website so and this is of course true for anybody here so if you look for people joining you in the workshop the local FSVE mailing list and the option to contact supporters in a certain region couldn't be very helpful in finding new friends and making a workshop together alright I think we have no more questions we can wrap it up I want to say thank you all for being here and having so many questions that was really helpful to actually make it interactive as well and yeah maybe exchange contacts with each other if you want to keep texting because otherwise we will close down the room soon and yeah we'll give you the time to exchange contacts and then yeah I hope to see you in one of our workshops or even better organizing one of the workshops on your own and then yeah please let us know if you do because we can help you with that we can promote that on the FSVE channels and Eric anything you want to add to that no remember upcycling at FSVE.org in case you found a team you want to run a workshop let us know and then we go from there go through the steps helped you in promotion in organizing and we would be very happy seeing some of you doing a workshop and bringing out the message yep for sure so yeah thank you again and see you soon bye bye thank you for joining


Hello, yeah, I think it's time, hello everyone, yeah, I'm Trishna, I am intern at Red Hat with federal engineering team, so before I start, this is my first DevCon and I'm first in Bruno and first conference talk, yeah, so yeah, thank you. So as the name implies, I'm going to talk about building and building Docker image and running Docker container for your application on remote atomic host with Ansible. You might be thinking why Ansible? So here is the answer, yeah, automate all things, yeah. So in the course of my job, I used, I generally work with Docker images and Docker containers all the time. So I just thought to find a way why don't I automate these things with Ansible. So I choose Ansible, yeah, so the contents of my talk will have project atomic, building Docker image and container, Ansible automation and cockpit remote manager. So I will give a short introduction on each of the contents first and then I will start the demonstration. Project atomic is a lightweight container based OS which lets you run only containers. So if you're looking for something where you want to run only containers or cluster of containers for your application, then I think project atomic, it's a better place to switch to and it has minimum packages installed. So you don't have to care about packages installed on OS if you're using running containers. Also it uses RPM OS tree tools. So it never leaves your system, remains halfway upgraded, either it happens full or it happens not at all. So with the single command atomic host update, you can upgrade to your OS to the next version and using atomic host rollback, you can just rollback to your previous version, yeah. So there is nothing halfway. That's about project atomic and to your Docker, I think I don't have to talk anything about Docker in 2017, but I'd like to give a short introduction anyway. So Docker wraps your application in a container that it needs to run. So it keeps your containers isolated from each other and from underlying infrastructure. And of course, portability is the biggest key feature of Docker and there are so many things on, yeah, Ansible. So if you're looking for managing remote hosts, automate your daily job and repetitive task, then Ansible is a good tool, really good tool because I just don't want to repeat my task all day. So I'd probably sleep my day, sleep and use Ansible rather, yeah. There is cockpit. Cockpit is a great tool to manage your remote servers, remote host using web user interface. So what cockpit does, you can, you can, you can control, administrate your Linux or GNU servers using web browser. You can start your containers using the only the web browser and any system CTL or any services. You can have access to the terminal of your host running, host using cockpit. So it's, it's super useful tool. Okay. Now we can move to the demonstration, yeah. So is it visible? So here is the root directory, a flask hello world and right there, there is a sub directories Ansible. Ansible is the sub directory, under there we have Ansible configuration file, inventory file and the playbook. And in the same directory we have Docker file and there after we have the application. It's a simple hello world application of flask and this is the hello world Python file which is rendering to index page on root URL request. And there are, I have used change that template for HTML, which is displaying hello world and some magic of CSS, which I probably copy. And I have the Docker file. Is it visible or should I use the terminal? Visible? Okay. So I'm using Fedora as base image and inside there I'm installing Python flask and Python change that template. Then making, I'm making a directory app and copying the source to the app. So here is a source directory where I will put my application on the atomic host. So this is a source directory copied to the app directory inside the container. Then I'm changing my directory and running the file with entry point Python, yeah. Now moving to the Ansible configuration, yeah, I'm SSH-ing to the atomic host as Fedora because I'm using Fedora atomic host and then becoming root user. And inside the inventory file I have the IP of atomic host and we have the SSH private key file. So I'm basically doing everything from my Fedora workstation remotely via Ansible. So here is the playbook. I have two variables, SRCDIR, which has the source path to my application of my workstation. And I have a destination directory where I'm going to put my application on that atomic host. So here is some example where I have done. And here are the plays. First I have created the destination directory and then I'm copying the Docker file from my source directory to the destination directory of atomic host. And then copying the application from my source directory of my workstation to the destination directory of the, under the sub directory source on the atomic host, yeah. Now I'm building, running the build for Docker for image, yeah. So I have used the option hyphenf. So hyphenf you can use to mention where your Docker file is or you can use hyphen file instead. I'm running the Docker container, which is going to be on port 5000 on my atomic host. And then starting the cockpit service with atomic run cockpit image, yeah. So with atomic run, we can run Docker. It will start container of cockpit, the atomic run command. What I have after, yeah. So after that, you have to make sure you're present in the Ansible directory. Then you can simply run Ansible playbook, main.yml that we have created, the playbook. And it is going to do all your tasks. So right after there, after it does all the tasks, you can simply go log into your cockpit and see what is there going on. So cockpit you can, you'll be, once the cockpit starts running on your atomic host, you'll be able to access the cockpit from your web browser with the IP of atomic host on port 1990. So the username will be the username of your atomic host and the password you use. If you don't want to enable password full SSH access, probably you have to turn it on for once. And once you create the password and username, you can disable the password full SSH access right up in there. I have the cockpit running, so I can show you, yeah. This is how it looks like. Is it visible or should I zoom in? Okay, yeah. So here are the containers. You can see what are the containers running on my host. I hope the internet should work. Yeah, so here is the application that is running and the cockpit container itself. Yeah, and here are the play buttons. You can simply play it and the container will start running from the images. So let's test. So here from tools, there is terminal. So from here, I can directly get access to my terminal of atomic host. I'll test the application. Sorry, yeah, yeah, it's there. So yeah, that's it. Yeah, that's what about my talkies. Here is the playbooks you can find on GitHub in my namespace and then Fedora Cloud Ansible. And here there are a few blog posts on this in the project atomic blog and Fedora magazine, you can just read it on your free time. That's it about my talk. Do you have questions? I think I finished it pretty early. Sorry, I didn't get it. So using cockpit, so the question I should repeat, yeah. How should the cockpit have access to your host, right? Yeah, in Ansible, I have turned my user to root, yeah. So after it becomes root, it can run atomic run cockpit. It will start the container. And after the cockpit container starts, you will probably have access to the web user interface of cockpit via your web browser from your current host, yeah. You don't have to manually SSH to your atomic host at all, yeah, yeah, yeah, yeah. So atomic run is kind of replacement of Docker run because when you do Docker run, you have to probably pass lots of options there. So atomic run is kind of wrapper of that. Any more questions? I don't think so. Okay, thank you. 15 minutes or so, so I can just put it on YouTube. Put it on this place open. Yeah. Okay, so. Yeah, now. Yeah, we can think about the atomic run. Think about the atomic run. Anyway, you know, so. So, then they used to do a certain picture on it. Oh, this is what it looks like. Yeah, it looks like. Yeah, it looks good. Yeah, it looks good. I do have a total of two things. I appreciate it. And picture it on the ice right at the bottom, yeah. You have to, we used to, like that, Oh, here. There don't have an inkling about it. This doesn't show them to. It just shows it. Why is there a need for them for these three elevators? For example, if I am in May, the next one I will publish. The question is for, it takes longer to determine the issues. Is it because of the, is it about their own opinion? Is it because of the, is it about their own opinion? Is it because of the, is it about their own opinion? Is there a need for them for these three elevators? He's up there actually. He's the guy. Yeah, I'm just reporting. It doesn't matter. When it's not necessarily going to take on a man, it's, yeah. Yeah, it's just that, it's just that, um, they don't take me back here. They're streaming on the bot. The bot. They use the system. We don't hear from people here. Yeah, so, I'm not sure about the follow-up though. Is there a need for them for these three elevators? Yes. Okay. Okay. They need any assistance? Um. Okay.


Hi everyone, in this tutorial I'm gonna be showing you how to add an element in the sorted list expecting that this element is also gonna be sorted. Okay, to do that first I'm gonna import the bisect module. This module provides support for maintaining a list in sorted order without having to sort the list after each insertion. Now let's create a sorted list. I'm gonna populate it with few elements for example 1, 4, 7 and 16 and then we're gonna add an element for example number 5 in this list in sorted order. So if we want to add this element we're gonna call in sort function from this bisect module and as the first argument we're gonna provide the name of our sorted list and as the second argument we're gonna provide the number which we want to add in this sorted list and also we want to sort this element. Now let's call our list and as you can see this number 5 is now properly sorted in our existing sorted list. That's all in this tutorial. Don't forget to subscribe to our channel. See you in the next tutorial. Happy coding!