Later a tool called Procyon replaced many of the aforementioned tools.
P.S. Not including links for any of those tools as apart from being obviously outdated, Many of those tools started flagging for malware in later days; Perhaps they're just false positive considering their feature set but I don't want to risk it.
For absolute Privacy (If that's even possible without going off-grid), Then yes.
But if you need to use apps which you trust but it depends upon proprietary Google bits then microG is the best alternative now.
microG > Open Gapps > Gapps
e.g. Signal needs GCM to send notifications, If it doesn't find one it will revert to pull notifications. Pull notifications are unreliable and are subject to being killed by battery management due to power consumption. Not to mention missing notifications during emergencies could be dangerous.
microG is totally configurable, You don't need a Google account to use it. So even if Google knows about your device, It would require parallel construction to identify you personally. I think that's even better than using any Google app on iOS.
One thing that not many people know: you don't need to have a Google account to use GCM/FCM even with official Gapps. You can simply not sign in to Google play and push will still work.
It's still running tons of spyware yes but it's an alternative on phones where MicroG is not an option. Eg Samsung phones with Knox enabled.
Okay, I was just checking. I thought maybe they run their own servers and thought it'd be worth trying
Yeah, I'm not a privacy fanatic, but literally having all my notifications funneled through one ad company .. that's on the far end of creepy/dystopian .. Thanks but no-thanks
I keep hearing this myth about how notifications can't work seemlessly without GCM. I don't believe it :)
I currently have GooglePlay disabled and I've never had issues with Signal notifications. However Instagram doesn't work at all. And Messenger is very inconsistent
If apps like WeChat do it then I don't believe it's impossible
> I thought maybe they run their own servers and thought it'd be worth trying
Unless the app you're using use the alternate push notification system e.g.Unified Push, There's no point in microG having their own servers. Demand your favorite app publisher to release a Non-GCM version of their app on F-Droid.
> I currently have GooglePlay disabled and I've never had issues with Signal notifications
Good for you, As I said its pull notification. In simple terms a scheduled local service asks the app's server whether you have new messages. The service needs to be active all the time consuming power, You'd probably seeing a pinned notification for it; Every pull notification app needs its own such service.
> I keep hearing this myth about how notifications can't work seemlessly without GCM. I don't believe it :)
Nothing to do with myth (or) belief system. Push (or) Pull is the technical fact w.r.t notifications.
If you haven't tried Jadx [1], give it a shot. It's by far the easiest way to reverse Android APKs. It doesn't do patching or reassembly, but I used it for reversing the Delong'hi APK for longshot [2][3] and the quality of output was fantastic.
Note that scripts like this are extremely useful, but in the long term they're cobbling together a lot of tools and will become brittle or difficult to use across versions. I suggest that even if it works for you today, understanding exactly what's happening under the hood will help if the tool becomes unsupported long-term.
These are great. I used jadx to pull apart a conference attendee app I was supposed to install to see what it hoovered up. There is a level of reverse engineering that people can just get comfortable with doing without ahcieving the virtuosity of the stuff people publish papers and get talks about.
Simple things like, what SDKs does this thing use (adware), what external APIs does it call (trackers), what interfaces does it use (mic, gps, etc), what data does it hoover up (contacts, sms messages, etc), what parties does it send them to, how much effort do the authors go to obfuscate or hide what they are doing (packers, code obfuscators), does it use a static encryption key or derive one from predictable components, does it have hidden features from triggers and arguments - are all achievable for someone with a bit of interest and an afternoon. The more niche the app, the less sophisticated the protections on it, I find.
Jadx is useful for decompilation, yes — it produces the best results of all the decompilers I tried because it works with dalvik bytecode directly (vs converting it into regular JVM classes). If I need to patch an apk though, I'd first use jadx to find the place I need to change, but then it's apktool for actual patching in bytecode because it disassembles and reassembles dex files losslessly.
Java decompilers aren't intended to produce valid code that you can compile back. Sometimes they do, but it's more of a coincidence.
By the way. Another underrated reverse engineering tool is xposed framework. It was never intended to be one, but the ability to inject arbitrary code into any app and install hooks without having to modify the apk is a godsend.
The problem with tools that rely on apktool is that they tend to fail to patch the most sophisticatedly obfuscated apps typically banking apps. This is because they abuse implementation details in the Android source to essentially make it possible to unpack the app while installing, but impossible to repackage it (usually using sketchy non-utf8 characters and broken Manifests).
The only way I found to patch these apps is by making them debuggable and then injecting Frida at run-time. This is possible by delicately patching the Manifest as precisely as possible.
Full disclosure, I made a Python script without any dependencies: https://github.com/julKali/makeDebuggable
Yes. For example you could hook the function that encrypts the outgoing payload and print it out before it is encrypted. And then for decryption you could hook the function that decrypts the payload as it comes in print out the result.
Going further, the API likely uses some secret key for encryption/decryption and you could hook that value out of the app as well.
I think 98% is a bit high,
but even if it were true the desires of the masses only matter if you're trying to sell something. I think it's safe to just assume that all opinions and suggestions on hn are for a technical audience.
The timeless problem is when the n% confidently declare they know what’s best and impose their perspective on everyone else. The most common way I see this happen is the pitfall of someone assuming everyone experiences something the same way they do.
I've noticed that a lot of the people who do Android modding, custom ROMs, etc. don't otherwise actually have any formal training in software or computing; they're just pursuing a goal of "I want my phone to do X" and end up learning a lot in the process. Indeed, this may be their first and only exposure to Java.
i used to be an android poweruser in high school and college, I rooted my phones, played around with lots of custom roms, had a terminal emulator and full power of arm debian installed in a chroot environment, tried different keyboard apps, launchers, and all other customization possibilities...
then I started working full-time and had way less free time and realized 99% of the time I now use my phone to read news sites and take quick photos, and then switched to iPhone...
Was Android (even stock) insufficient for reading news sites and quick photos? Or is iOS much better for you at those tasks? If that's all you need, then I would consider both Android or iOS sufficient, but I don't quite get why you'd give up so many options and capabilities to switch, unless iOS is much better at reading news and taking photos.
Maybe an analogy to help with my question. If all I need to do is unscrew Phillips number 2 screws and the occasional flathead, and I already had a great power drill with a bunch of bits in the kit (and had mastered it), why then buy a different power drill that that takes a proprietary bit and can only do Phillips and flathead? At some point I might have a need to do torx or hex or square, etc. Wouldn't you be better off having the capability should you need it? Why is it better to not have the capability?
As someone who switched to iPhone in almost the same way as parent comment, it really does do those things far better. I frequently had to hard-reboot my android, install different versions of apps, etc because of something going wrong. Photos not saving was the last straw for me. It wasn't even because I was a particularly power user - I customized everything on it, but even after resetting it and wanting a clean slate, it still couldn't handle basic tasks. I just became sick of it and switched to an iPhone. This was on one of LG's flagships, as well.
Edit: I'll add a bit here - I didn't realize just how much maintenance and fixing I was doing on android, because I was so used to it. I would frequently have to fix some issue and I didn't think twice because it was something I either did often, or I just wasn't in a rush and I went into "fix broken tech" auto pilot mode. But I started to realize how often I was doing it and how it wasn't really normal to have to do that, because I would just zone out and focus on fixing the issue at hand.
I had a bad experience with an Android tablet. Apps would crash regularly and the OS refused to update. (The system update crashed too.) I never touched an Android device again. But this was 10 years ago.
Android tablets were indeed largely trash 10 years ago, with a couple small exceptions that were super expensive (Samsung). I loved my Nexus 7, but alas it wasn't meant to be.
I love that there are so many super cheap android tablets, but I hate that there are so many super cheap android tablets.
Or huawei or lenovo or xiaomi or... I doubt there is any brand where this affected a large fraction of users, but those are the brands (besides google and samsung) that I have experience with from myself or (grand)parents (who would call me when that happens).
thanks. I don't doubt you, but it's shocking to hear that a modern LG flagship struggles to take photos and read news (I'm assuming a web browser?). That would indeed be maddening. I've been using either Nexus, Pixel, or OnePlus for many years now so I'm not familiar with The LGs, Samsungs, Motos, etc, but I was under the impression that they were all pretty stable (though underpowered when you buy a cheap model).
I use android but most of my experiences with LG phones was very buggy and just messy (the G2 was pretty good though). I only ever buy samsung or google phones now, but it makes sense that someone wouldn't want to touch android if they had a subpar experience with another manufacturer.
indeed. it's very easy to blame the whole OS/ecosystem when your experience is with one particular manufacturer. In the iphone world there aren't different makers, so it's easy for people to consider any "android" as all androids.
I have a similar background. Used Androids from 2010-2018 and switched to iOS.
Some arguments were: Android's capabilities became less over time. I had cool apps until 4.4 Kitkat which automated toggling on/off WLAN/GPS/mobile network among others, but these APIs were restricted more and more over time so the benefits became less.
Another fact was that I calculated that iPhones were cheaper than all Android I owned when taking resale value into the calculation. That Apple gives OS updates for 5+ years helped a lot here, I had experienced <1 year on flagship models before. (buying 2 year old iPhone and selling it at 4 year old was cheapest/year)
But one of the biggest reasons was that I never trusted Google much. For example I never used the feature to use WiFi networks to get coarse location. Which meant worse UX (had to click NO on a dialogue each time I activated GPS) but also a "feature" the iPhone had (better location).
This is obviously a very personal point of view and it might be very different today, as I used Android in its earlier years.
iOS's UI/UX is far more responsive and consistent in reaction times and input latency than Android. I suspect Android's use of Java to be the main culprit, but not really sure on that...
For browsing, it means that even phones which perform better in CPU bound benchmarks than my old iPhone 11 have random UI stutters & non-smooth scrolling in browser mostly while content is still loading, and these make me miss-click somewhere where I didn't want to, frequently enough to notice (compared to iPhones where it rarely happens)... 120Hz displays on Android make the UI smoother, but random janks & stutters still happen a lot more than on iPhones...
When I'm taking photos most of the time I want to take a good picture as fast as possible, sometimes I want to take more in quick succession, this is also somehow easier on iPhones from my experience.. (although I admit it's been a long time since I held a top-tier Android phone, my only contact with Androids is with my friends & family phones which are mostly Xiaomi/Huawei/OnePlus priced around 300-400€ which is half the price of my iPhone)
Also, switching to a newer iPhone is seamless compared to buying a new Android, and UI/UX/Settings don't change much with new versions, compared to Android version updates (although from what I've heard this has gotten better in Androids recently)
In your analogy I'd be talking about a power drill that just makes me work faster because it's better designed and more intuitive to use, even though it might have less RPM and less bits support.., if I did a lot of drilling just on Philips and Flathead and it saved me enough time, it would be worth the saved time I can use for other stuff...
This right here is it for me. I was the same, in high school there was a 50/50 chance if on a given day the rom I had installed could actually make phone calls, but I didn't mind... but obviously priority change over time.
Switching the iPhone I was struck by how damn smooth everything was. Years of XDA tweaks couldn't touch my iPhone 6 out of the box despite specs I had always seen as inferior.
My tongue in cheek saying will always be: I'll switch back to Android when you can rotate an app correctly.
For those not familiar with Android internals, the UI "framework" the OS provides doesn't support that basic use case. Phones are fast enough that it can be hidden with an animation, but unless an app explicitly signs out every view is torn down and redrawn in a new orientation.
It's a tiny thing, but to me it's the iconic symptom of Android vs iOS. That's a decision Android made to support devices with 256mb of RAM, but never prioritized improving on, and now Android UX is stuck with that nit for eternity.
I'm on Android since 2011, but reasons I'd go for iphone would be phone dimensions, consistent photo quality and long updates
Android seems to fixed only one of them (updates) while becoming more and more locked as iOS, quality photos with good shutter speed are offered only by pixel with bad availability in most of the world and pretty bad VFM besides A models
I switched to iPhone this summer for that very reason, after maybe a decade on Android.
Coming from the Essential PH-1 which I’d grown tired of maintaining past it’s official support life and looking for something the same size or smaller, I settled on one of the few options on the market that offered both small size and performance: the iPhone 13 mini.
Barring a vastly inferior notification experience, it’s a stellar device. I suppose I wish for something that was both small and well-supported on Android. If the timing was different, I may have gone with the Zenfone, but then again seeing Google send texts as me to their numbers sat wrong with me, so I may have switched systems anyway.
Zenfone looks good only on paper - horrible shutter speed (main disadvantage of Samsung), unreliable hardware compared to other brands, unoptimized software and no long updates guaranteed plus they ask more for it than Samsung with trade in bonuses. They could fix the software part, but I don't think more reliable hardware is realistic and what's the point of great phone if it breaks.
If someone doesn't mind slow shutter and mediocre battery life then S22 is good option for smaller phone with good camera, updates and good VFM with trade in bonus (could be had around 500€ with any phone from drawer).
Is it more socially acceptable or expected in society to say 'I worked too much' rather than 'my family and wife were dull and annoying and took up loads of time, I wish I had got better at my passions / done more research instead' or similar platitudes?
I imagine some people who genuinely think stuff similar the latter won't say it, and others may have it written off as deathbed delirium / psychosis and ignored if they do
I remember calculating the optimal amount to work, to maximize non-work non-sleep healthy life expectancy, and it was somewhere around 2 hours per day in my case. Accounting for retirement, it'd be around 4 hours.
If you work more than optimal, you lose free time.
I switched to a job that gives me more free time, can't be happier. Money past a comfortable level (enough for food, living and some savings) clearly can't buy not having to run around everywhere and think about your next move all the time. I've seen so many people regretting they spent their life just for their job(s) chasing they didn't even knew what.
I feel so sorry when I ask how are you and the reply is "busy".
Why the switch, though? You can check the news and take quick photos on an Android, too; The vast majority of Android phones aren't being used for tinkering.
IIRC it should be noted that newpipe is more resistant to getting taken down because they're utilizing public api data and not altering youtube's app. Not sure if the new revanced is still a modded youtube apk.
What is going on with "Android Emulation on Linux???"
I feel like I have to be missing something obvious, I can't see how it can be so darn hard to just run android apps on (desktop) Linux given..you know, that it is Linux.
The API of 'Linux' is its system calls, and I guess very few Android apps are coded against that; most use the Android SDK. So presumably Android's services and API surface need to be ported to desktop Linux, which is probably very involved.
I love seeing more excellent tooling made with bash/shell scripts. For situations like this one, where all the underlying heavy lifting is done with other CLI utilities, shellscript is the perfect fit.
IME that's true until around 250 lines or so (this one is 500+). Then you've passed the point where "rewrite it in something more scalable / testable / maintainable" can easily be done, and you start having endless iterations of "it needs to be rewritten but I just want this one feature added so we'll do the rewrite later." And heaven help you if the script changes owners, gets additional owners, or you have to pick it up again after ignoring it for a year.
That's not to say the above doesn't happen with other languages/systems. It most certainly does. It just seems to happen faster in shell (especially when people start getting adventuresome in their use of fancy shell features).