Skip to content
This repository has been archived by the owner on Jul 22, 2018. It is now read-only.

LockClock just went free #40

Open
mid-kid opened this issue Jan 29, 2017 · 28 comments
Open

LockClock just went free #40

mid-kid opened this issue Jan 29, 2017 · 28 comments

Comments

@mid-kid
Copy link

mid-kid commented Jan 29, 2017

LineageOS/android_packages_apps_LockClock@b642154
Hooray!

@mid-kid
Copy link
Author

mid-kid commented Jan 29, 2017

Note: it still requires gms to run properly, but at least it doesn't include play services anymore.

@mar-v-in
Copy link
Collaborator

It does not require gms, there is a reference to "com.google.android.gms", but it can as well be filled with UnifiedNlp. It's just there to detect if there is a network location provider installed, and in case there is none, it will fallback to GPS.

@mid-kid
Copy link
Author

mid-kid commented Jan 29, 2017

Ah, okay, I wasn't sure about that. Thanks for clarifying.

@mimi89999
Copy link
Contributor

So is that app 100% free and the apk doesn't include any non-free lib now?

@mar-v-in
Copy link
Collaborator

yes, at least for the latest release of LineageOS

@mimi89999
Copy link
Contributor

Great. Now SetupWizard and Gello... They could also remove unrar and TimeService.

@mar-v-in
Copy link
Collaborator

mar-v-in commented Feb 1, 2017

SetupWizard change that makes it free was merged as well and should be present in next nightly.

@mimi89999
Copy link
Contributor

Was Gello freed?

@DocSniper
Copy link

DocSniper commented Feb 23, 2017

I have a question, I updated today my LineageOS and the new setup wizard is included.
Before updating I deleted freecyngn.
But now setup wizard crashes and the home button doesn't work, does anybody know why or how to solve this ?
If I delete the new setup wizard and it's directory everything works fine.

@Thrilleratplay
Copy link

Thrilleratplay commented Mar 14, 2017

With the removal of external_google LineageOS/android@4ac2915, does that mean LineageOS is now free of all the proprietary components of Google?

Edit: Probably not completely free of analytics. Gello still has ambiantsdk. But only in android_external_gello-env which I do not see in the project manifest. hmmmmm.

@Luca1991
Copy link

Luca1991 commented Mar 19, 2017

It would be usefull to have a list of non-free parts of LineageOS (if any). Can someone do this please? @mar-v-in what do you think about?

@mid-kid
Copy link
Author

mid-kid commented Mar 19, 2017

@Thrilleratplay @Luca1991
I believe Gello is the only non-free component of LineageOS right now, besides TimeService (which is part of device-specific blobs). It can be disabled by simply removing gello/Android.mk in vendor/cm. It's not in the manifest because it replaces Browser (and in fact, Browser is built instead if you remove gello's Android.mk).
Besides that, there's still the built-in anonymous analytics (which aren't as hurtful since they can be disabled), and there's leftover stubbed(?) code for the analytics in Trebuchet.

@mimi89999
Copy link
Contributor

There is also unrar that is non-free

@Luca1991
Copy link

Luca1991 commented Mar 19, 2017

@mid-kid thank you for clarifying that. So there is 0 chances for TimeService :(

So the items in the list ATM are:

  • Gello
  • Unrar
  • TimeService (which AFAIK it is not going to be freed)

Correct me if I'm wrong.

EDIT: @mimi89999 do you know if unrar is needed anyway? If not, I (or we) can ask devs to remove it or replace it with a FOSS alternative. What do you think about?

@Thrilleratplay
Copy link

Thrilleratplay commented Mar 19, 2017

@Luca1991 That list looks accurate from what I have found. A few things to expand on.

Gello:
I have been trying to build LineageOS from source and could not figure out why Gello was still being compiled without the respective repos. I found the answer in vendor_cm where the apk will be downloaded if the source isn't available. A less obtrusive way to remove it from personal builds is to use vendor_extra like this (Correction, this isn't working Fixed)

Trebuchet
ambientsdk was removed in the last commit LineageOS/android_packages_apps_Trebuchet@7b7aab4

Unrar
While the license is not copyleft, I would still consider LineageOS/android_external_unrar free free and open source. Seeing that most firmware is not open source, I think this is of little consequence.

TimeService
Correct me if I am wrong here, but while LineageOS/android_vendor_qcom_opensource_time-services is open source it is dependent on Qualcomm firmware blobs which are not.

@Luca1991
Copy link

@Thrilleratplay your post is great!

As for Gello, in theory, the problem relies in ambientsdk, right? I'm not sure what there's in there... I might reverse engineer the aar to give it a look. Maybe we can strip it from Gello. We will see.

As for timeservice, I'm afraid you are correct, and that file is just the "glue" to call functions from the blob.

@Thrilleratplay
Copy link

@Luca1991 I do not see any gerrit submissions or github fork commits to suggest that anyone has started to free Gello. I am ok with yanking it out of my build but if you want to free it for others, I would also at the Gello build script. It looks like Google Play services are a dependency.

@mid-kid
Copy link
Author

mid-kid commented Mar 19, 2017

@Thrilleratplay I'm afraid the time-services repo you linked are but a simple header to link with their blobs. The real TimeService can be found in different vendor trees: https://github.com/TheMuppets/proprietary_vendor_oneplus/tree/cm-14.1/oneplus2/proprietary/app/TimeService amongst other apps of it's kind.

@Luca1991
Copy link

@Thrilleratplay I'm pretty sure that the official repo for Gello is this: https://github.com/LineageOS/android_packages_apps_Gello
But I can't find any reference to ambientsdk here.

@Thrilleratplay
Copy link

@Luca1991 That is the source repo but LineageOS's vendor_cm will download and install the prebuilt apk by default or compile from source. The build process is handled by the Gello build script which looks like it will pull in Google Play services. There is another repo,LineageOS/android_external_gello-env which does have ambientsdk, I am not sure if this is still being used or is just legacy jetsam.

@Luca1991
Copy link

Luca1991 commented Mar 19, 2017

@Thrilleratplay Ah this make a lot of sense. Well I think that the best way to check this is to reverse engineer the gello.apk (the one that get downloaded from here: https://github.com/LineageOS/android_packages_apps_Gello/releases/) and check against ambientsdk. In this way we can be sure that LineageOS/android_external_gello-env is (or isn't) used.
When we know that, we can then try to hack android_external_gello_build to remove unneeded stuff.

@zuglufttier
Copy link

@Luca1991 How would I check whether ambientsdk is used? It's possible to extract the apk file with apktool (https://ibotpeaches.github.io/Apktool/).

@Thrilleratplay
Copy link

@zuglufttier quick answer, search LineageOS for ambiantsdk. Thorough answer, build and grep the code.

@Luca1991
Copy link

@Thrilleratplay sorry for the late reply, I was very busy with work lately.
Anyway I've reverse-engineered the gello.apk (downloaded from https://github.com/LineageOS/android_packages_apps_Gello/releases/), and I can say that:

  1. if the packagename of ambientsdk is "com.cyngn.ambient", then there is no trace of it in smali-code.

  2. in gello.apk the included libs starting with "com." are: "com.android", "com.google" (*), "com.qualcomm" and "com.quicinc", so no trace of com.cyngn.

  3. there is no reference of "ambient" keyword in the Manifest

  4. The included binary libs are: libgiga_client.so, libicui18n.cr.so, libicuuc.cr.so, libsta.so, libstlport_shared.so, libswe.so, libsweadrenoext_22_plugin.so, libsweadrenoext_23_plugin.so, libsweadrenoext_plugin.so, libswecore.so, libswenetxt_plugin.so, libsweskia.so, libswev8.so, libswewebrefiner.so.

*com.google is also used for GCM

@Thrilleratplay
Copy link

@Luca1991 Not surprised that ambient was removed. What are the com.google references? I was more concerned that Google play services are still being built in.

If it can be confirmed that Google play is no longer in Gello, does that mean this project is no longer needed for LineageOS after a certain version?

@ghost ghost mentioned this issue May 3, 2017
@mid-kid
Copy link
Author

mid-kid commented May 15, 2017

https://lineageos.org/Changelog-9/
Uhm, rejoice?

Only closed software left in lineageos now is the device binary drivers (which include TimeService.apk). There's still open source but non-free software left, if you're going to be pedantic about that (which imo you should, but android is, well, android), which includes unrar amongst (probably) others.

Now you can freely recommend lineageos to your friends without having to bite your tongue about the proprietary software/tracking it includes. The only "tracking" left is the anonymous statistics which can be disabled in the setup wizard IIRC.

Now, if some magic were to happen and all binary drivers were freed...

@zuglufttier
Copy link

@mid-kid:

The only "tracking" left is the anonymous statistics which can be disabled in the setup wizard IIRC.

Wasn't that the case for trebuchet? I think they got rid of it here: LineageOS/android_packages_apps_Trebuchet@7b7aab4

@mid-kid
Copy link
Author

mid-kid commented May 15, 2017

@zuglufttier No, I'm talking about the anonymous statistics in CMParts (In the Settings app, accessed by Personal -> Privacy -> Anonymous Statistics). Here's it's source: https://github.com/LineageOS/android_packages_apps_CMParts/tree/cm-14.1/src/org/cyanogenmod/cmparts/cmstats
It just sends data about which device you have, what ROM version, the country you live in and the carrier, just to keep track of the device usage.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants