Jacob Lewis (left) and Jonathan Harijanto (right) explain their senior capstone design project.
Writing software for Google as an undergraduate seemed beyond imaginable for Jacob Lewis and Jonathan Harijanto, but they are now on the cusp of having their plug-in integrated into Android Studio, which is the tool of choice for Android app developers.
Their new plug-in will directly impact millions of Android developers and indirectly affect over two billion users by improving the privacy and security of Android apps.
“This is a dream come true for me to have this sort of huge practical impact, especially because it’s done by undergraduates,” said Danny Dig, associate professor of computer science and advisor to the senior capstone design team working on the project. “It's a dream that came true because of teamwork.”
The seeds of the project were planted when Dig asked his contacts at Google what would be helpful to them. And at that time, changes to the Android operating system created new requirements for app developers, so they began collaborating on a project to make that transition smoother.
Previously, apps were allowed to ask for a list of permissions during installation to access things like a contact list, camera and GPS. Many users did not read through the entire list and instead gave blanket permission to access everything.
“That was a recipe for disaster because these apps were over privileged. The users gave permission but the apps didn't need all those privileges, and that's how a lot of malware permission abuse happened in the old Android system,” Dig said.
Software developers are now required to change their apps to comply with the new operating system, so that permission is requested only at the time it is needed. It is a simple change for the user, but more complicated for the developer.
To make this process easier and less error prone, the students have developed a plug-in that requires the developer to simply identify where the new permissions request is needed. The code with the required format is then automatically inserted into the app’s code.
“The whole point is to save the developers’ time and a little bit of frustration, and it actually helps reduce the amount of bugs introduced when you're doing the upgrade, because doing the upgrade is not trivial,” Jacob Lewis said.
"The engineer at Google was thoroughly impressed by the quality of the code and the testing suite."
— Danny Dig
Lewis, a computer science student, started on the project last summer while doing a research internship in Dig’s lab. He worked with graduate student Nicholas Nelson on the first phases of the project including developing a testing suite. In the fall, computer science student Jonathan Harijanto joined him to develop and polish the plug-in as part of their senior design project that will be presented at the 2017 Engineering Expo on May 19.
“The undergrads have done a fabulous job. They've taken this way beyond the level of a senior capstone design project,” Dig said. “The engineer at Google was thoroughly impressed by the quality of the code and the testing suite.”
The students give a lot of credit to Dig’s mentoring for their success.
“We learned how to work as real software designers. Danny’s style was to treat us not as students, but as professionals,” Harijanto said.
They were able to thoroughly experience methods they had learned in the classroom such as test-driven development, and practice soft skills like communicating and following up with an important client.
“We also got the experience of working on software that has been developed over years by different people. You have to figure out how it works and make modifications without breaking it,” Lewis said.
Their plug-in has gone through the initial phase of review by Google and is currently under the second review. Both students are excited about the prospect of having their software integrated into a huge consumer product.
“It’s pretty cool. More than pretty cool. It’s fantastic!” Lewis said.
Dig hopes their success will be a message to other undergraduates.
“If you work hard, and in collaboration with others, and you choose a high impact project, it can be such a fulfilling experience — not only on the technical side, but the emotional side of working on something that's indirectly affecting one billion people on this planet,” Dig said.
“I'm very excited for the undergrads that they were able to get this experience. It's a memory that they will take with them and cherish for the rest of their lives.”