Related
Project Description
This is a project to port the Droid version of CyanogenMod to the milestone. While the Droid and Milestone devices are twins, they are CDMA and GSM respectively. Hacks include not flashing the boot image provided by the CM Droid package and some GSM configurations.
Status
CyanogenMod 6 RC1 (with CoburnROM hacks) will flash successfully, however it will refuse to boot (possibly due to incompatible stock kernel or that the milestone doesn't like unsigned ROMs). So far, flashing works from koush's ClockWorkMod Recovery and Open Recovery 1.14. When rebooted, the device hangs on the M Boot logo.
Downloads
PoC/RC #1: Download from my blog, Geek In The Family - 75MB.
What you can do
Pretty much this ROM is currently a playground, if you want to have a poke around, download a copy of the above versions of the ROM and extract it, and then poke around and see what makes it tick.
Other notes
Space saved for future use.
Cheers!
Reserved for future use
Sent from my Milestone using XDA App
Good luck man, I really hope this happens
You should check with the guys on and-developers.com, and their IRC channel #milestone-modding on Freenode for any progress on the bootloader
Hacking the bootloader is impossibile on our Milestone, the TI OMAP chipset runs in High Security mode and for switching to General Purpose mode you have to desolder and resolder the OMAP chipset on your mainboard, soldering the right pins for enabling the GP mode.
Anyway, 2ndboot can make us able to boot a different kernel (for now GSM modem is unusable, so we can't use the phone with the new?y booted kernel) and this is the way that we'll take on the Milestone for using a custom kernel.
No custom ROMs. Or at least not this way.
We'll NEVER be able to boot this ROM.
Sent from my Milestone using Tapatalk
kholk said:
No custom ROMs. Or at least not this way.
We'll NEVER be able to boot this ROM.
Click to expand...
Click to collapse
My my, that's negative. I do know about the custom kernel via kexec/2ndboot trick.
Nothing is impossible to be hacked, it's a matter of time and blood, sweat and tears. As Paul from MoDaCo stated, nothing is impenetrable.
I'll get this ROM booting, even if I have to wait a year or two before the Boot loader is hacked or a proper method is working.
Good luck to you. I commend you for your efforts.
After 1 year waiting for the bootloader to be hacked...I am slightly skeptical. However, now that the Droid X has been released to the masses with the same locked bootloader, we might get some fresh eyes to look into this matter.
I would be happy enough with a custom kernel running on 2nd boot ;-)
SenseUI Mod
Hello, You might try using the mot_boot_mode file, which is also used with the SenseUI Port for the Milestone, I guess that would make this boot too? If I'm right, this is the boot sequence:
This is what I'm talking about:
"the ramdisk is located in /system/ramdisk.tar folder, it all starts here.
the ramdisk is opened by /system/bin/mot_boot_mode."
You should download the SenseUI Mod and analyse it's way of booting.
Good luck!
Coburn64 said:
My my, that's negative. I do know about the custom kernel via kexec/2ndboot trick.
Nothing is impossible to be hacked, it's a matter of time and blood, sweat and tears. As Paul from MoDaCo stated, nothing is impenetrable.
I'll get this ROM booting, even if I have to wait a year or two before the Boot loader is hacked or a proper method is working.
Click to expand...
Click to collapse
the problem is not about being negative but you are facing it the wrong way .
the problem here is to hack the thing not to port an already existing mod .
Once the bootloader is bypassed they ll be hundreds of real ROMS .
Anybody can pretend at porting there own roms it is completely IRRELEVANT since it wont be possible until its hacked.
you said it 'even if I have to wait ' well there you go do like thousands of others and just wait . BUt please dont pretend at anything else , thank you .
I am actually porting the ROM to the Milestone, in case if you're concerned that I'm lying. Check my twitter for progress reports.
@Mikevhl we may have a hope if we try that! Thanks for the recommendation!
Also, kexec is working. However, instead of rebooting Android with the Droid CM6 Kernel, it just reboots the phone instead. I'm working on a possible fix for that, thank Kiljacken for compiling the kexec module.
So you're not going with that 2ndboot method?
In any case, my eyes are glued to your twitter account
Coburn64 said:
I am actually porting the ROM to the Milestone, in case if you're concerned that I'm lying. Check my twitter for progress reports.
@Mikevhl we may have a hope if we try that! Thanks for the recommendation!
Also, kexec is working. However, instead of rebooting Android with the Droid CM6 Kernel, it just reboots the phone instead. I'm working on a possible fix for that, thank Kiljacken for compiling the kexec module.
Click to expand...
Click to collapse
dude your my hero
It's kinda off-topic, but I just thought, why don't we go 4chan style on Motorola, and, for example, black fax local Motorola offices or something?
Coburn64 said:
My my, that's negative. I do know about the custom kernel via kexec/2ndboot trick.
Nothing is impossible to be hacked, it's a matter of time and blood, sweat and tears. As Paul from MoDaCo stated, nothing is impenetrable.
I'll get this ROM booting, even if I have to wait a year or two before the Boot loader is hacked or a proper method is working.
Click to expand...
Click to collapse
As I said, it IS possible to skip the BL checks, and it's fully hackable...but...I know.... you don't want to resolder your OMAP....
if this mod is "Droid" based, you need to make many modifications to the startup..
the Droid is in no way protected, where Milestone has GSM radio protected, and specific drivers required to open it, which for now only opens when using the original "init" process of a milestone.. the "init" from droid disables radio completely..
but take a look on how i got the senseui port running.. i got the froyo partly running the same way, so im sure my solution used in senseui mod will help you along to make it work...it just requires some debugging and "adb logcat" so you at least can see what happens at startup..
why not work together dexter? i think this may help out in particular cases
Dexter_nlb said:
if this mod is "Droid" based, you need to make many modifications to the startup..
the Droid is in no way protected, where Milestone has GSM radio protected, and specific drivers required to open it, which for now only opens when using the original "init" process of a milestone.. the "init" from droid disables radio completely..
but take a look on how i got the senseui port running.. i got the froyo partly running the same way, so im sure my solution used in senseui mod will help you along to make it work...it just requires some debugging and "adb logcat" so you at least can see what happens at startup..
Click to expand...
Click to collapse
DO YOU HAVE FroYo running!?!?!?!??!?!?!?!?
Coburn64 said:
I am actually porting the ROM to the Milestone, in case if you're concerned that I'm lying. Check my twitter for progress reports.
@Mikevhl we may have a hope if we try that! Thanks for the recommendation!
Also, kexec is working. However, instead of rebooting Android with the Droid CM6 Kernel, it just reboots the phone instead. I'm working on a possible fix for that, thank Kiljacken for compiling the kexec module.
Click to expand...
Click to collapse
I never said you were lying all I said was dont pretend ' about rom ' when even a basic kernel wont run .
if you have a workin kexec would you mind sharing it ?
I'm very interested in your work since it seems that we will never see an official 2.2 from Motorola... I don't know if we are going to have the new update, here in France (2.1 update 2).
Well, I just have a question. On a french forum, someone posted a method to downgrade the ROM of the Milestone by implementing the right version of the bootloader in it, I don't know if I very clear. This member had some major problems with the 2.1 update so he decided to downgrade to 2.0.1. However he wasn't able to do it because his Milestone was using the 90.78 bootloader while the 2.0.1 rom was using the 90.73 bootloader. Eventulally, he managed to install the 2.0.1 rom on his Milestone by putting the 90.78 bootloader in the 2.0.1 rom.
So my question is : will it be possible put a bootloader in a custom rom in order to make it boot on the Milestone ?
(I would give you the link for the topic on the french forum once my account si verified)
kholk said:
Hacking the bootloader is impossibile on our Milestone, the TI OMAP chipset runs in High Security mode and for switching to General Purpose mode you have to desolder and resolder the OMAP chipset on your mainboard, soldering the right pins for enabling the GP mode.
Anyway, 2ndboot can make us able to boot a different kernel (for now GSM modem is unusable, so we can't use the phone with the new?y booted kernel) and this is the way that we'll take on the Milestone for using a custom kernel.
No custom ROMs. Or at least not this way.
We'll NEVER be able to boot this ROM.
Sent from my Milestone using Tapatalk
Click to expand...
Click to collapse
Actually this is a wrong assumption. HS chip cannot be turned to a Generag purpose.
For those who are interested, here is kexec.
Devs should know the drill, insmod kexec.ko etc etc.
Originally made by Kiljacken (compilation, etc), shared by me.
As for the Android 2.0.1 on Boot Loader 97.73, he may have just made a custom update zip that nukes the system partition and installs 2.0.1 on the device.
Also, I updated my Boot Loader to 90.78ch, which is the XT702 Boot Loader - no bricks. Yet.
I've decided to put this project on hold as the bootloader has been fixed for the HD8.9/7 (and in theory can be fixed for the KFire2's)
SAFESTRAP v3.05 BETA (2nd-System Bootstrap / Recovery)
** DISCLAIMER: THIS IS A SERIOUS HACK YOU ARE ABOUT TO PERFORM TO THE DEVICE.
DUE TO THE WAY THIS BOOTSTRAP WORKS, THERE IS A POSSIBILITY OF SOFT-BRICKING.
I'M NOT RESPONSIBLE FOR ANY DAMAGE YOU DO TO YOUR KINDLE BY USING THIS TOOL.
YOU DO SO AT YOUR OWN RISK.
If you bypassed the BIG RED letters above, make sure you re-read it and understand that you're installing a hijack which affects the normal boot process of the Kindle Fire HD. If that process is changed in anyway it could lead to a soft-bricked device which will need to be fastboot restored.
FOR NOW THIS IS FOR THE KINDLE FIRE HD 7", LATER I ALSO HAVE A VERISON WHICH WILL WORK ON THE KFIRE2.
Download the APK Here
md5sum: 9e409cf3a9d7d510b5bf19262ecfb6d5
Brief Overview / Instructions for how to use Safestrap:
http://blog.hash-of-codes.com/how-to-safestrap/
KNOWN ISSUES:
Currently there's a bug where when you create and activate a rom-slot, the /sdcard is pointed at the rom-slots "/data" partition. This of course won't have all of your content in it. I'll release an update once that's fixed.
CHANGES:
[11/14] Initial release for KFireHD7
[10/30] Begin testing tablet interface for Kindle Fire's
[10/17] (3.05) Fixed SD card / emmc sharing in recovery (UMS)
[10/17] (3.05) Fixed recovery installation/removal from ROM-slots
[10/14] Updated to v3.04 BETA.
[10/14] Recovery is now based off TWRP 2.2.2.1 (fully featured touch-based recovery)
[10/14] Can create up to 4 Virtual ROM-slots to flash ROMs to and when "Active" ALL TWRP functions affect that ROM-slot (For example: Flashing .zips, Backup and Restore)
[10/14] Nearly instant swapping from ROM to ROM
[10/14] User selectable data partition sizes during ROM slot creation: 1GB, 2GB or 3GB
[10/14] ROM slots are saved on the internal emmc space so that preinstall and webtop partitions are no longer used and shouldn't break OTAs.
[10/14] Charging in recovery
[10/14] Supports "Reboot Recovery" from Android OS
Entry to recovery via Splashscreen on boot-up. The screen stays up for around 8-10 seconds and if you hit the "Recovery" button, it takes you to Safestrap Recovery. You can skip the wait by touching the "Continue" button.
KNOWN ISSUES:
Stock flashing is currently disabled. And this will probably remain this way for the foreseeable future.
SPECIAL THANKS TO:
The entire TWRP team who has built an AMAZING recovery system.
The testers which have helped in past and present versions of Safestrap, knowing that it could mean they brick their devices.
[ SCREENSHOTS COMING SOON ]
Anxiously waiting...
I'll know more shortly once my tester gets back with me.
The proof of concept runs perfectly on my 1st gen KFire where I mocked up the hijack and was able to walk through it w/o fear of bricking.
Sent from my XT894 using Tapatalk 2
Hashcode said:
I'll know more shortly once my tester gets back with me.
The proof of concept runs perfectly on my 1st gen KFire where I mocked up the hijack and was able to walk through it w/o fear of bricking.
Sent from my XT894 using Tapatalk 2
Click to expand...
Click to collapse
Thank you for the hard work as I'm sure you have spent quite a bit of time on this.
For us non tech guys, exactly what is the purpose of this recovery be? To make a backup of what currently have? The ability to flash?
Sent from my SPH-L900 using xda premium
This is custom recovery for flash ROMs and backup/restore.
Sent from my XT894 using Tapatalk 2
This is the best news i ever heard since i bought my KFHD a week ago. I hope it passed the test.
Just to reiterate...
Users cannot go and flash any ROM on their devices...ROMs must be made with the 2nd gen. kernels in mind and any attempt at flashing ROMs made for 1st gen. devices will most assuredly brick one's device, correct?
soupmagnet said:
Just to reiterate...
Users cannot go and flash any ROM on their devices...ROMs must be made with the 2nd gen. kernels in mind and any attempt at flashing ROMs made for 1st gen. devices will most assuredly brick one's device, correct?
Click to expand...
Click to collapse
Yes. No flashing 1st gen device ROMs. Insta brick. Safestrap can't save you from that.
Good news and Bad news on the 1st tests:
1. Good: I found a better hijack point in the new 7.2.1 ramdisk. So I'm adjusting some things and doing some more tests.
2. Bad: The screen is rotated differently on the KFireHD, than it is on the KFire 1st gen. So my touch buttons and stuff aren't working correctly. The next few tests I do will be to show where and how the screen is rotated in relation to the touch controller.
So for now still nothing public.
In the meantime, if any ambitious devs want to start slopping together a ROM to use once this is completely working, that would probably be a good idea. :laugh:
Hashcode said:
Yes. No flashing 1st gen device ROMs. Insta brick. Safestrap can't save you from that.
Click to expand...
Click to collapse
How hard would it be to add a check that makes sure no 1st gen. ROMs, or any ROMs that have modified files that would normally include signed headers, get accidentally installed?
For the most part I'm sure it wouldn't be a problem, but there are those who will try anyway, no matter how many warnings are given in bold red letters.
Not to mention there may be inexperienced (or heaven forbid, malicious) "devs" that might, inadvertantly or otherwise, modify a file with a signed header.
soupmagnet said:
How hard would it be to add a check that makes sure no 1st gen. ROMs, or any ROMs that have modified files that would normally include signed headers, get accidentally installed?
For the most part I'm sure it wouldn't be a problem, but there are those who will try anyway, no matter how many warnings are given in bold red letters.
Not to mention there may be inexperienced (or heaven forbid, malicious) "devs" that might, inadvertantly or otherwise, modify a file with a signed header.
Click to expand...
Click to collapse
I believe that the final product will have such a check.
Well that idea sounds like something twrp would have to integrate. But all the same, hash code, do you have a donation button, you are clearly a valuable member of this device development.
Sent from my Fire HD with root!
Testing Update: We have a solid boot after Safestrap installation which is a plus since we're now injecting the recovery splashscreen into the boot process.
My last test (#3) didn't have a working touch controller during the splashscreen, but I have test #4 ready which *could* load the touch driver and allow for entry, but since it's Halloween and we all have families, I won't know how that works till later tonight.
TODO: I'm working on re-doing the Safestrap theme for 800x1280. I had previously been running a 1280x800 theme but the screen is vertical not horizontal. So the layout will be more phone-style than tablet looking.
But even if it's the default TWRP theme with a few missing images, I'll know if we're in a usable state soon.
Verifying Device: I think we can turn on asserts before flashing ROMs. However, it could be that every single Kindle Fire device is named "blaze_tablet" or "blaze" so that might be less than useful. It will take some testing probably to come up with a solution. The Safestrap APK performs a model check when you click "Install Recovery" (KFTT == KindleFireHD-7) and instantly bails if that's not true, so at least you can't install the wrong devices' recovery.
On the donations: There should be a button under my name on any post which links to my paypal.
However, let's hold off donations till we see some actual results and have a working stock-based ROM to flash which devs can tweak w/o fear of bricking. At that point I'll call it a successful bootstrap/recovery and we can move on to AOSP builds.
I'm not against donations (tho I don't do this for money obviously), I just feel you should already have something in your hands and be happy with it before you give any hard earned money to a dev.
First of all, thanks a lot for your effort. Wish I could donate but Im a minor and live outside US... so its hard to ask for "dollars" here..
One question: this will allow OTG usb somehow or not?
Sent from my KFTT using xda premium
Thanks a lot for working so hard, Hashcode. The updates are really appreciated and I really hope you are successful in opening up the Kindle Fire HD/2,
This is something to look forward to, hope it works out.
So you don't own the HD, hashcode? I will def. send a donation your way if you get this working!
I am trying to understand the way this will work. Is it a bit like a dual boot except with 4 roms? And one must always be running stock? And you can backup and restore all of them with twrp?
Yes, on all of the above.
I should point out that you may not actually want to run 4 ROMs due to emmc size limits (especially KF2).
I keep the stock ROM pure to protect our path to recovery.
Sent from my XT894 using Tapatalk 2
Hashcode said:
Yes, on all of the above.
I should point out that you may not actually want to run 4 ROMs due to emmc size limits (especially KF2).
I keep the stock ROM pure to protect our path to recovery.
Sent from my XT894 using Tapatalk 2
Click to expand...
Click to collapse
Awesome work Hashcode. This sounds similar to how Android is run on the Touchpad. Keeps Webos in its own environment and dual boots Android. Can't wait! :good:
the days i was walking along the internet to get some informations about lapdock/webtop again
like often it kicked me back to the roots -> XDA http://forum.xda-developers.com/showthread.php?t=2588623
there is a patch to make space for a second system
iam sure thats a way we can install webtop on our phone.
but i not wanne try it first ;] cant buy me a new phone if something goes wrong
and it need to be modifyed first
what do you think? its the right way?
I think due to the fact that Photon Q uses Qualcomm architecture instead of TI's, maybe it doesn't even support BMM. At least I've only seen BMM running on TI OMAP-powered devices so far.
Sent from Google Nexus 4 @ CM11
I would love to see a boot Manager on our phone.
That would give me more freedom to test different ROMs.
But theoretically we need to be able to change/add/remove partitions for this.
Afaik this is not possible, so there probably won't be any boot manager.
Recone said:
Hey I want to ask some questions about nexus root I glad you will help me.
Why I should root nexus 5. Root users please tell me. I know few good things that i can get floating windows, some good root apps like adds blocking and etc. But I need more to know please let me know .
Next I want to ask some main questions:
1.I phone gets brick if there are chances to recover phone that it would work again?
2. The best ROM now without bugs? I looked in forums for cyanogenmod is it good? Please notice the best roms for you.
3.Let me know if there are some good lollipop roms without bugs? Should I install Kit kat roms rather than Lollipop.
4.I saw a tutorial how to fix xbox 360 wireless joystick camera roll on nexus 7. I am wondering if I will able to do that on nexus 5?
5.Are battery saving kernels produce less preformance on games and etc?
6. ADB or fastboot can be used to install backup done in CWM if cant get into CWM on phone or something else that you cannot restore from phone.
I would be very thankful if you answer my questions AND sorry for my english if its bad, this is not my main language. If you can understand my question quote it and I will try to explain more understandable.
Sent from my Nexus 5 using XDA Free mobile app
Click to expand...
Click to collapse
Sent from my Nexus 5 using XDA Free mobile app
http://lmgtfy.com/?q=Good+reasons+to+root+a+phone
Sent from my Android 5.0 Nexus 5
*lets go*
Before we start: if you need to ask reasons to root a phone, then you dont need root. (my opnion)
1: Depends, we have many modes to reflash things,bootloader,recovery,second bootloader,download mode, qualcomm emergency mode,lg emergency mode and so on, it all depends on how much you screw it up
2: while this now is allowed to be asked on xda, it wasnt by a long time for a simple reason, the nexus 5 does have hardware differences depending on the batch that you got, that counting the fact that we dont know how exactly you use your phone we cant answer that, you shall read the rom threads looking for bugs and flash them if you want. and then stick with the best
3: aside from the bugs that are present in aosp (like no mute function,status bar glitching sometimes, google for more info) most roms are fully stable, as long as they are already based on the final L, not the developer preview.Your choice, im also playing with kk or l roms.
4: yes
5:depends of the kernel, some dont (think of this like a battery saving mode that when you open a game it disables), some do but you will notice just on really heavy games like gta, and some you will notice. but there is a lot to count on this, like thermal throtle, if the kernel uses qcom´s mpdecision or not.
6: installing a cwm backup directly thru adb or fastboot can be done, but not straight away, you need to extract the backups and convert their parts into one ext4 image then you can flash using adb or fastboot
All this is answered in the q&a sticky "read before you post"
opssemnik said:
*lets go*
Before we start: if you need to ask reasons to root a phone, then you dont need root. (my opnion)
1: Depends, we have many modes to reflash things,bootloader,recovery,second bootloader,download mode, qualcomm emergency mode,lg emergency mode and so on, it all depends on how much you screw it up
2: while this now is allowed to be asked on xda, it wasnt by a long time for a simple reason, the nexus 5 does have hardware differences depending on the batch that you got, that counting the fact that we dont know how exactly you use your phone we cant answer that, you shall read the rom threads looking for bugs and flash them if you want. and then stick with the best
3: aside from the bugs that are present in aosp (like no mute function,status bar glitching sometimes, google for more info) most roms are fully stable, as long as they are already based on the final L, not the developer preview.Your choice, im also playing with kk or l roms.
4: yes
5:depends of the kernel, some dont (think of this like a battery saving mode that when you open a game it disables), some do but you will notice just on really heavy games like gta, and some you will notice. but there is a lot to count on this, like thermal throtle, if the kernel uses qcom´s mpdecision or not.
6: installing a cwm backup directly thru adb or fastboot can be done, but not straight away, you need to extract the backups and convert their parts into one ext4 image then you can flash using adb or fastboot
Click to expand...
Click to collapse
Sent from my Nexus 5 using XDA Free mobile app
Thank you . But from 1 your answer I realized that phone can be bricked that it wouldn't work again. Am i right?
P.S could the brick ( no longer work at all ) be done from the first time?
Recone said:
Sent from my Nexus 5 using XDA Free mobile app
Thank you . But from 1 your answer I realized that phone can be bricked that it wouldn't work again. Am i right?
P.S could the brick ( no longer work at all ) be done from the first time?
Click to expand...
Click to collapse
yes.
but only by installing root wrong and even you probably would do just a soft brick, something that is easly fixed. but i shall not lie there are cases that some people got their phones hard bricked(needing to send to lg or google).
ofc the possibility is low, but it is possible. if you want to root read everything, if needed watch a video on youtube.
Hello, I just got a new phone. It's probably my first actual phone in many years, as I'm mostly a PC kind of guy. I have been having trouble getting it booted for a while now. Someone informed me that it might be an Axia phone from AT&T, but I don't know the validity of that. It says Q-Innovations every time I use it on Google stuff. Does anyone here know of the phone or know how to boot one?
Thanks a lot in advance!
CamShirayuki said:
Hello, I just got a new phone. It's probably my first actual phone in many years, as I'm mostly a PC kind of guy. I have been having trouble getting it booted for a while now. Someone informed me that it might be an Axia phone from AT&T, but I don't know the validity of that. It says Q-Innovations every time I use it on Google stuff. Does anyone here know of the phone or know how to boot one?
Thanks a lot in advance!
Click to expand...
Click to collapse
The model number seems to be the AT&T version of that phone.
When you say that you can't get it booted, what do you mean exactly? What is the device doing when you try to boot it?
Have you tried holding volume up+power(let go when you see the splash screen) to boot into recovery, then factory reset and wipe cache partition?
Some devices have to hold volume down+power, then at the bootloader menu, choose the recovery option.
Sent from my LGL84VL using Tapatalk
What do you mean? I didn't think it was that easy to boot a phone? I wanted to put Linux on my phone instead of the current android version or even put them both on there.
CamShirayuki said:
What do you mean? I didn't think it was that easy to boot a phone? I wanted to put Linux on my phone instead of the current android version or even put them both on there.
Click to expand...
Click to collapse
I think you need to do some research to get familiar with how android devices actually work. Android devices are not like PC, you can't just install whatever OS you want, android devices are not "generic" like that. Operating systems for android devices have to be built specifically based on the hardware in the device, down to the kernel level, the kernel has to be specific to the device. You need to do some reading about how android stock recovery and custom recovery actually work , you also need to research how android stock firmware and custom operating systems are flashed on android devices.
It is "possible" to remove android and install Linux on an android device, but only certain devices can do it, depending on the security built-in to the bootloader that is installed on the device. There isn't a universal way to install Linux on android.
It is also possible to install Linux on top of android in a sort of emulator/VM then use a VNC to .
There are some apps to install linux on top of android, such as:
1) Linux Deploy
2) Complete Linux installer
3) UserLAnd
I installed and tested UserLAnd last night. Try this and see what you think.
https://github.com/CypherpunkArmory/UserLAnd
View the README.md for instuctions to set it up.
Sent from my LGL84VL using Tapatalk