TL;DR
- Efforts like Graphene OS face increasing pressure from apps that refuse to run on non-standard Android.
- The custom ROM project characterizes Google’s approach to device attestation as incomplete and flawed.
- Graphene OS is prepared to take legal action if Google won’t let it pass Play Integrity checks.
I love running a custom ROM, but I’m concerned RCS is going to become a deal break for me :(
I love that text messaging will finally not be complete shit between iOS and Android, but RCS is such a shitty locked down protocol.
but I’m concerned RCS is going to become a deal break for me
For what it’s worth, I have RCS working with GrapheneOS. I don’t think I did anything special, but it did take awhile. I did see stuff on their forum about others having a bigger issue with it, though.
And of course, I prefer Signal, where possible.
Interesting. Do you have Google services installed? I use MicroG, which afaik has no RCS support.
Do you have Google services installed? I use MicroG…
Yes, I have Google Plays Services, Google Services Framework, and the Google Play Store installed, which are all sandboxed. MicroG isn’t supported by GrapheneOS.
Oh interesting, I didn’t know that’s how GrapheneOS handles Google services. I’d love to have working NFC pay and RCS, so I’m going to have to take a look at it. Thanks for sharing!
I’d love to have working NFC pay
NFC works. NFC payment is dependent on the app as some block those that fail Play Integrity / Google certification. Google Wallet / Pay does not work for payment because Google blocks it.
Motorola ROM is fine
More power to them
Wow, I legit just ordered a used pixel yesterday to give graphene a try lol. Uncanny timing!
Anyhow, that’s great news! I can really see the EU sinking its teeth into this if nothing else.
Welcome! I’ve been on it for a month or so and I’m still so thrilled
I plan on doing the same thing, any tips on finding cheap recent-ish Pixels?
I’m in an unsupported region so I’m afraid I can’t help much :(
In my case I just looked around a local eBay-like site and went with a reputable enough seller, fairly standard procedure there.
Where I am, Pixels are not sold officially either. I got a 7a for around $300. I picked a store with a physical office and made an order not through the site, but through said office. And at least could inspect the phone before buying.
Ah, that’s a nice way to go about it! I’d have loved to inspect mine beforehand as well but the only real way to grab one around here is importing yourself and paying 60%+ import fees on the damn thing or purchasing a preowned one. My living in a remote area also means there are none close by.
A brand new Murena Fairphone 4 (North America) is about $600 brand new, IIRC. I’ve been on one for the last 6 months and it’s excellent.
I’m planning on flashing my One Plus 9 Pro with Murena’s ROM. I’m working on getting de-googlefied.
Perhaps consider DivestOS as well if it’s supported, seems to be a way tidier package when it comes to security and privacy.
Thanks for the recommendation!
Stay away from both Fairphone and /e/OS/Murena. Fairphone fails hardware security in the most miserable way, and fundamentally breaks Android Verified Boot, while /e/OS is based on the highly insecure LineageOS, and it further rolls back security, while also repeatedly missing important security patches.
Also, 600 dollars is absolutely not cheap for a smartphone, and it’s especially not with it considering that both the hardware and software are highly insecure.
A Pixel can be purchased for much less, while being superior in every way.
Lineage OS is highly insecure ?
Yes, it is much worse than stock Android
https://madaidans-insecurities.github.io/android.html#lineageos
Thanks, I’ll check it out. I’ve installed lineage since it was Cyanogenmod on secondary devices for years. I dedicate them for audiobook playback and music playback. I’ll look in to it.
That kind of usage should be fine, it doesn’t really matter. Just wouldn’t use it for my primary mobile device.
The Pixel 6a is really cheap on the used market, and it still gets updates for at least 3 years.
The 7a isn’t that expensive either. I recommend staying away from Fairphones, Murena or /e/OS as these are highly insecure, and the companies behind them have repeatedly proven that they don’t give even the slightest fuck about the security of their users. They don’t publish important Android security patches on time, and Fairphone even managed to fully break Android Verified Boot, by signing their ROM with the publicly available (!!!) AOSP test signing keys. It should have been impossible to pass verification, but the vendor conducting the verification seems to be just as incompetent.
A used Pixel with GrapheneOS is your best option, while still being affordable.
I would totally buy a Pixel too but apparently most Pixels here are black market and the IMEIs are banned so I don’t wanna risk getting one that can’t connect to cell networks
Oof that’s scary. Good thing I have a decent enough return window to at least make sure stuff like that isn’t the case, at least.
Enjoy! For future reference I’d recommend just getting the latest Pixel as you’ll get the longest software support. E.g. a Pixel 8a is supported till May 2031, which is plenty of time to get a lot of usage out of your phone.
At the price of the Pixel 8a, I would suggest getting the Pixel 8 instead.
Personally I’m fine with 8as’ specs and don’t need any of the extra features of the Pixel 8 so I’d prefer to save the money and get an 8a. Plus 8as are supported for longer. Nothing wrong with getting an 8 instead if that’s what you want though
Right, I’d love to spring up for a 8th gen pixel but I live in an unsupported region and my currency is worth fuck all so I’ll have to make do with a secondhand 7 pro lol. Still fantastic longevity all things considered.
I’ll have to make do with a secondhand 7 pro
Ouch, that hits me right in the 7Pro feels lol. Make do, indeed, lolol.
Honestly, I don’t really need my phone for much so as long as the battery hasn’t degraded too much I’ll be more than happy!
I’m holding out for the 10. The 8 added mirrored display (so you can mirror your screen on a monitor… I’d rather this come with the Pixel Tablet 2 and the Pixel Tablet skipped it form some reason) and MTE, which GrapheneOS says is the most significant addition to security since they’ve started the OS. If those come with the 10, not to mention the 10 is supposed to have Google’s inhouse chip and not Samsung’s…yep, I’m upgrading.
I’ve been using graphene for years at this point and it’s the best operating system I’ve ever had on a phone. Before this my favorite phone was a jail broken iPhone 5c. I even got a pixel tablet to take notes on for college recently and put graphene on it as well.
Only thing Google has right atm is leaving the bootloader on their phones unlockable.
Thankfully there are FOSS alternatives for apps like Authy. I recommend Aegis
For your banking app, you can use this list to check if it’s compatible: https://privsec.dev/posts/android/banking-applications-compatibility-with-grapheneos/
Using the web app might also be an option.
Thanks for the tips, I’m a happy Aegis user already! Thankfully, my main bank explicitly doesn’t care about custom roms and I’m thinking I’ll just cut ties with the ones who do and let them know that was the reason at this point. Worst case scenario, I still have my locked down old phone.
Hell yes.
It’s fucking open source, this is no different from games with intrusive anti-cheat refusing to run on Linux, except it this case it’s not even a different OS.
It’s monopolistic and anti-user.
Ironically, if Graphene would succeed, it would lead to a system that’s every bit as locked down as a manufacturer’s Android. GrapheneOS would also not allow you to have root etc.
IMO Graphene wants a place at the big player table. They’re not in it for user freedoms.
A manufacturer’s Android can have special privileges for their own apps, and almost will certainly have special privileges for Google’s apps.
Graphene by default wouldn’t give special privileges to any app, so that’s at least a plus.
It’s true that it would be locked down, but you at least have a couple more controls over how locked down compared to a manufacturer’s OS.
the only reason I’ve wanted to be rooted in recent years is when I didn’t have hotspot on my plan and the most complete way around that was with root.
I think I would like a degoogled Lineage/Graphene OS though
Wtf, plans locking down device features. That’s mindblowing.
Why is stuff like that included not included in every plan by default? As a European, I can’t even imagine paying extra for that. If I want to hotspot my data, my operator can kiss my ass and simply allow it, I’m paying for the data anyway.
In less free countries the provider also provides the handset and locks it all down.
for this case it was a plan that’s pretty discounted and also unlimited without hard throttle. they don’t want people using it on computers or game consoles probably
As Kevnyon@lemmy.world said: @NetworkOperator: Kiss my ass. I pay your for service. You wanna restrict me, I switch my damn plan. If I use it on my phone streaming 4K stuff from my home server or watch 1GB of data over hot spot on my phone is not their business.
Recently moved to graphene couldn’t be happier
I don’t care about these apps but it will only get worse over time if not addressed. I could see things as simple as Spotify, Netflix, etc. Refusing to run
I don’t use those services either but that’s not a future I want
I could see things as simple as…
Last I heard, the McDonalds’ app doesn’t work, of all things.
https://discuss.grapheneos.org/d/9123-the-mcdonalds-app-doesnt-work/
Neither does the BBC’s couch to 5k app, for who knows what reason.
Wow, there you go then.
Literally 1984 (/s)
Can’t even order Donalds from your phone that you bought with your own money anymore 🫡
Even without the custom ROMs, the whole Android ecosystem is a colossal fucking mess.
I’ve got old apps that won’t work any more. It’s not even compatible with itself.
People give Windows a load of shit, and deservedly so for some of it, but it’s a million times more usable than Android when you want shit to “just work”.
I’ve got old apps that won’t work any more.
That’s true for every operating system. Old apps aren’t updated to use new system APIs and such and they eventually stop working.
On desktops we can use virtual environments, translation layers, plenty of solutions to make old programs and games work on a modern OS. Phones are somehow incapable of this.
Yet I can compile applications that work on Windows XP, and they still work under Windows 11.
It’s not as if Android is some svelte slimline OS where every byte matters. There’s plenty of room there for keeping compatibility with older apps.
Dude there’s millions of lines of code and thousands of hours per year that keep old windows shit running. It’s a nightmare to support that. Microsoft has made that a priority and you can easily argue it shouldn’t be, but you seem convinced that’s the only valid path. It’s not.
How we all wish there was a third option, I would genuinely take less functionality in favour of privacy and performance. I don’t need AI and fancy image processing. I want to use my phone to pay the old way, like when samsung copied the magnetic strip info, not like now where google gets a copy of my receipts.
Sucks iOS is the alternative, nearly gave in last week but the price was just too much for what I was getting.
Same with iOS, I don’t know why you are singling out Android here. My favorite game back when I used an iPad stopped working after certain update. It was a puzzle with rails and colored trains, can’t remember the name now.
Windows and Linux are quite a lot better in this regard.
I’m not singling them out, it just happens to be a thread about Android.
There’s no reason for mobile OS’s to be flaky like this. There’s nothing magic about either that means old stuff can’t be supported. It’s just that trillion dollar corporations apparently can’t afford the resources.
There kind of is, software changes and things need to be updated by comparison, your windows example is a double edged sword, there’s a lot of bloat and Microsoft can’t make changes that might be beneficial on windows because of all the backwards compatability layers and services they generally leave in. It’s good and bad in it’s own way.
I suppose you’re talking about a 32-bit app that wasn’t updated for the newer 64-bit architecture. If yes, then there’s actually a technical reason behind it, not just Apple being dicks. Because other than 32-bit apps, every app that received a 64-bit update should still work on the latest iOS.
Software that is 10 years old and unmaintained is likely unsafe to use and therefore shouldn’t work. Windows has a lot of issues specifically because it’s backward compatible with ancient software, actually. Security and a path forward should matter more than clinging to old software that must stop working someday regardless of how hard you try to delay it. Emulation/VMs are and should be a way to work around that on desktop and it would actually be nice if mobile OSes had that too. That way at least the ancient software can be sandboxed and not a security weakpoint. The right approach though is not to do this horrible patchwork of APIs like windows which creates a security nightmare
I’ve got old apps that won’t work any more.
People give Windows a load of shit… but it’s a million times more usable than Android
Where do you run your old Windows Phone apps nowadays? What about new Windows Phone apps?
On my Windows Phone silly
Can’t tell if that’s a horrible wallpaper or a totally fucked up screen
It’s a photo from a disused quarry that my granddad used to work in
I see it! That’s pretty cool.
Dude, that’s sick, thank you! I wish I had a better pic to offer but this is the best I can do since Jerboa app is not currently letting me upload pictures in a comment…
🤘🏼
Ah, memories.
Memories? Pssshhhh, he took that pic an hour ago…
How?!
Ah shit, here we go again
with a device equipped with a camera of sorts, if I had to guess
It still works. Most of the apps are borked. Windows Explorer hasn’t been updated in 5+ years so doesn’t work with most sites. Baconit escaped reddit’s 3rd party app purge and still works. Imgur still works well but with all the genX on it reminds me of icanhazcheezeburger.
I’ve got old apps that won’t work any more.
I’m actually for this. The bar to entry for the Play Store is too low with too many low quality and unmaintained apps. I’m all for booting insecure and super old apps. They cheapen the ecosystem.
Well that’s all very well, but I’ve got a bathroom speaker I can no longer access.
So how about instead of Daddy Google deciding what’s best for everyone, they let things run and give you a warning?
Hell, I’ve even got games I’ve paid for that are now gone. Honestly, fuck them for even thinking that’s acceptable.
So how about instead of Daddy Google deciding what’s best for everyone, they let things run and give you a warning?
That is not what’s happening. It takes tons of work to maintain backward compatibility but you’re framing it as though it doesn’t and they’re just being a holes on purpose.
Same, it’s why I never buy a game or app nowadays, they will just stop working when the new OS version comes around, devs already got their money so they don’t have any incentive to care, and contrary to PC I can’t do shit about it myself on my phone, there’s no “androidbox” to run old apps inside my phone.
The problem is allowing the APIs it uses to exist at all in the OS is a huge security hole.
So it’s my choice to run them?
If I can download an APK, I should be able to run it in a “compatibility mode” and have the OS do it’s best to run it.
It can’t.
A compatibility mode would involve meaningful cost, massively compromise security, and not have a chance in hell of working.
They could just spin up a container of some sort. It’s still fundamentally Linux, so it should be possible to run Android inside an lxc container the same way you can run a desktop Linux distro in docker (which is based on the lxc functionality in the Linux kernel)
The point is that you have to emulate a fuckton of low level access to even have a chance of anything working. Either you replace the actual hardware access with junk data, making none of the apps work, or you break the whole permissions structure, and your security is completely gone.
All of those APIs were deprecated because it’s impossible to provide them in any way that resembles security.
You’re really arguing for a covenant around tech that companies want to orphan. The rule needs to be the code is opened and a slacker code owner is appointed for handover.
This is gonna embarrass Google a Lot but it’s gonna embarrass azn and m$ a whole lot more.
The forced alternative is a refund if you can bring something recognizable with a serial number to your post office or something as ubiquitous, present and staffed - have them validate in the loosest fashion and require like 10 bizdays for the cash refund.
Whether or not the post office is there for that or charges the OEM for the notary-light service is a matter for the courts, the USPS, and these days probably the fn SCotUS.
Why can’t you connect to the speaker with Bluetooth?
It doesn’t allow direct connection. You have to dick about with a stupid app to put it in “speaker mode” first.
Damn that sucks!!! I wish there was a way to sandbox older apps. I’ve ran into the same issue with old apps before.
Gives me Sonos vibes.
I won a Sonos speaker years ago, thing needed (from memory) an app to switch to AUX mode. The speaker sounded great but I didn’t want to install an app just to use the thing.
In a grand spectacle my ex’s cat kicked a potplant off a windowsill into our fish tank. That shorted a power board, we didn’t have breakers (ceramic / wire fuses) which ended up killing the speaker.
Honestly as nice of a speaker it was, good riddance.
Even just being rooted on the stock Pixel rom is a fight. It’s a constant cat and mouse game to pass basic and device integrity, but as of recently a lot of us have been able to pass strong integrity as well which has been nice.
Even just being rooted on the stock Pixel rom is a fight.
That, I can see being more of an issue than an unmodified, trusted 3rd party OS. If I remember right, rooting makes the device fail Verified Boot:
It establishes a full chain of trust, starting from a hardware-protected root of trust to the bootloader, to the boot partition and other verified partitions including system, vendor, and optionally oem partitions.
https://source.android.com/docs/security/features/verifiedboot
Fair point. At least with stock rooted as I said there’s ways around it and I can pass all play integrity checks and such.
Really the only thing holding me back from switching to GrapheneOS is that some of my apps fail CTS.
If a proper pathway is defined for custom ROMs I’d switch in a heartbeat.
Hoping this initiative leads to a reasonable outcome.
I wish you could slap a custom rom on whatever phone you want and it Just Works™ like you can slap linux on any PC, but instead we get apps that potentially don’t work, locked bootloaders, push notifications tied to Google Play Services, and whatever else. You can put Lineage on the EU version of my phone but not the US version because fuck you. I hate how corpo centric phones have become. Like Google shouldn’t be allowed to hijack my entire screen for an ad or an app update. The entire modern definition of “sideloading” is BS, apps have access by default to things that they really don’t need, and why do I need to use ADB to purge your pre-installed bloatware ffs
Not cool.
Yeah it would’ve been like that for pcs too if they weren’t around for quite longer.
ngl a unlocked bootloader would be a security nightmare but you can put any rom on any android 8+ device they are called gsi roms
How does one flash a ROM without unlocking the bootloader these days?
Shouldn’t that break Android Verified Boot?
A pure GSI image could use a Google key, I suppose, but others shouldn’t, right?
You have to unlock it fire and flash the gsi rom
ngl a unlocked bootloader would be a security nightmare
So, like a desktop or laptop? Sounds fine to me.
I’m not an expert, but I had an expert explain that an unlocked boot loader is only risky if you think someone nefarious is physically able to get their hand on your phone. Is that true?
We can get same experience quite soon on laptops too when arm laptops&desktop will arrive toensd users.It gonna be lock down same as phones nowdays.
I do not like this prediction, because it seems like a plausible reality. Which would be awful.
risc-V laptops might compete with arm in a few years - maybe not for power users, but for most simpl use , or for those who will just ssh into real computer.
We’ve started the process of talking to regulators and they’re interested.
Oh that’s great, they aren’t actually suing since that would be a pretty big money pit, they are going straight to regulators, something can happen.
FTC act is the most useful against this sort of behavior and only the FTC can file suit for that, not individual companies. I don’t think this could be filed as a violation of the Sherman act. See here for an overview: https://www.ftc.gov/advice-guidance/competition-guidance/guide-antitrust-laws/antitrust-laws
The only reason I stopped using grapheneOS was because Google contactless payment didn’t work.
Loved everything else about graphene thoYou could use sandboxed google play on the main user or second user.
Still can’t use tap to pay
Do you pass play integrity?
Do you pass play integrity?
GrapheneOS, and other non-OEM OSes, do not. It’s kinda the whole point of the article/OP I linked.
Have you tried playintegrity fix?
I’ve never used contactless on my phone, I already had a contactless debit card. Why are you, and others, using their phones to pay?
I can create a virtual card before every trip, use it via my phone and then cancel it after the trip, never worrying if my card got skimmed anywhere for one.
For some fucking reason there is zero option for this type of secure virtual card in my country. And I hate it. A friend got skimmed for over $1200 a couple months ago.
when you pay using the virtual wallet it automatically makes a mock id to the POS … at least in my country it does
There’s no need to carry your cards if you already have your phone.
Also, unlike your wallet, if you lose it you can track it.
Do you not carry cash? My cards go with my cash, which I would carry anyway even if I could pay by phone just in case I’m out and lose one.
No I don’t. It’s all contactless here.
the app hides the real numbers for the credit card and gives the POS a mock id to make the purchase. it’s harder to clone. also you need to unlock the phone for it to work it’s an extra layer of protection
Pretty sure all contactless forms of payment work like that
Giving a mock card sounds useful. I’d looked into that for paying online but I couldn’t find an open source way to do it.
Lazy.
Just plain lazy.
I already have my phone in hand in shops - shopping lists, reminders or even plain taking my mind off the shelves so I won’t buy unnecessary shit. Then I get to checkout and…my phone is already in hand. Just boop it and done. No need to dig out wallet from pocket and then dig out card from wallet.
I find it super convenient.
Also, it doesn’t have a limit. Pretty sure I bought my last car with contactless on my phone, but that was years ago.Why carry a contact less card when you can pay with your phone? Have you given it a try? I find myself without a card in lots of situations. Paying by phone is incredibly convenient. Lot harder to lose than a card too.
A contactless card barely takes up any space. It’s not particularly easier to lose either. I’ve never lost my card; I just keep it in my wallet, in my pocket, just like my phone is in my pocket.
You know what takes up less space? Software on the phone that I’m already carrying.
There have also been occasions where I forget my wallet but still have my phone to pay with.
Easy with one card, but it’s a different story when you have multiple cards. Transit pass, loyalty cards from grocery stores for discounts, credit cards for cash back rewards.
I’d still carry my debit card if I used phone in case I lose either as I would have the other. I think I’d be more likely to notice my phone is missing but more likely to lose the phone in the first place.
I’ve never tried it in part because I don’t trust my phone with it’s proprietary software, and I suspect there may be no open source apps to pay with.
Yes, it has an upper limit though as I discovered after cycling to the garage to pick up my car with just my phone. Triple cycling joy that day 🙄
Yes this depends on the linked card, the software you are using and sometimes vendor limits. Many banks have a cardless withdrawal from atm option as a backup if there happens to be atm nearby. These can have pretty high limits. There are also card generating apps like cash app where you create a cc number on the fly. In a pinch most vendors can easily split the cost of something across different cards if one is maxing out.
I’ve never used a contactless debit card. I already had a chip and pin debit card. Why are you, and others, using your contactless card to pay?
I didn’t choose, my bank gave me a contactless card when my last chip and pin card expired (the card still has chip and pin which I use when contactless fails).
My Chip+PIN card has an RFID chip. Standard in Germany. Why would I tell, much less trust, google with my banking. Why would I let them skim data and/or a percentage off the transaction. Why would I choose a system with spotty acceptance, whereas I can use my girocard everywhere. It also doubles as 2nd factor for online banking.
I’m sure Google contactless payment works really well when the phone is dead. Or you drop your phone in a toilet or off a bridge. It’s far easier to loose a phone than a card in a wallet in your pocket. If you lose your phone, you also lose access to all your money.
Not a fan of google pay, but I gotta say, I lost way more wallets than phones in my life it’s about a 3 to 0 ratio (not counting purses I have lost before owning a phone.
I also carry a wallet? Cause, yknow, ID and stuff.
Phone is just way more convenient. Especially since I don’t have a limit on its contactless amount. Whereas with my card, I would have to chip&pin for anything over £40
I’ve been tired of “modern” security doing nothing but annoy people. Recently, a Portuguese bank “innovated” by exclusively allowing login only on a mobile device. Yes, a clean web browser with 3FA is not “secure” enough, has to be done on a mobile device. Clearly, desktop PCs are too insecure to conduct transactions.
Therefore, because one does not trust their mobile device. One simply spun up a clean Pixel VM, shared my data with Google and just did their work there. Peak security.
Which one?
The one owned by the state.
Stockpile did this too. I quit them (i did not like them anyway but that was the last straw)
I would close my bank account if they did that and move my money to a better bank. I don’t do financial stuff on mobile phones.
They are steamrolling usability for elder people with that kind of security measures. I can’t understand how they can get away with this, those bastards.
Does the bank staff all work on mobiles?
Goddamn technology stealing black jobs
Here’s a harsh truth and a reality some tech users need to wake up to.
Google has never cared about open-source. They have never cared about user-choice/user freedom. They could easily tomorrow make Android closed-source and that would be the end of Android. It has always been about control. Apple got that authoritarian idea correct long ago by locking down the entire OS.
Google is allowing open-source modding only because there’s a large community out there that cares and wants it to thrive. And since it runs on Linux, it would make Google look VERY bad if they removed bootloader unlocking, open source, removed features that causes issues for custom roms.
Google doesn’t care you YOU. If they really cared, they wouldn’t be slowly removing features or adding anti-user features that in the long run, don’t benefit anyone but them.
I’m glad the government declared them a convicted monopoly. I’m still ashamed it took them this long to finally go through with it.
What an insane world we live in.
Afaik GPL 2 would be stopping google from making android closed source anyway, unless I got something wrong about the license terms. But if anything that supports your argument. The main reason google is generally supportive of open source is that they recognize that they benefit from it. The moment that changes, google will try their best to close off anything it can (granted I don’t think it’s that likely to change, but they’re already abusing their position plenty).
There is another side to this coin though,
Android roms took googles work. The community could have assisted with other mobile os systems like Firefox OS or Ubuntu mobile but didn’t.
Instead ROM developers wanted a cookie cutter solution.
In practice, Android is actually fairly open. Republicans have a weird obsession with Google (remember that weird hearing where they clearly didn’t understand technology). You can even disable the inbuilt apps
This could lead to a situation like windows where 50 popups are added. It’s could backfire and it benefits Apple a lot. That’s what I’m concerned about. I’m worried that I’ll end up paying for Gmail or more for Android. And Google will get blamed for it
Can you handily disable notifications being monitored or the keyboard informing google on your typing? Disabling apps is surface level, the software is free to te end user for a reason, google harvests us.
Android ROMs community took Google’s work? Are you forgetting which community developed Kernel does Android use? Let’s not think about the custom ROMs community as free loaders, please. They provide a free and amazing service.