Nagram/README.md

190 lines
9.5 KiB
Markdown
Raw Normal View History

2020-06-26 04:54:48 +00:00
# NekoX
2014-10-23 15:30:35 +00:00
2021-02-04 11:20:05 +00:00
NekoX is an **free and open source** third-party Telegram client, based on Telegram-FOSS with features added.
2014-10-23 15:30:35 +00:00
2021-11-17 13:36:59 +00:00
[中文FAQ](https://github.com/NekoX-Dev/NekoX/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98)
2021-05-06 07:25:38 +00:00
2021-11-06 07:39:42 +00:00
[![Get it on F-Droid](https://i.imgur.com/HDicnzz.png)](https://f-droid.org/packages/nekox.messenger) Fdroid releases can not upgrade to other releases.
- [Update News Telegram](https://t.me/NekogramX)
- [GitHub Feedback](https://github.com/NekoX-Dev/NekoX/issues)
- [Group Chat (English / Chinese)](https://t.me/NekoXChat)
- [Group Chat (Persian)](https://t.me/NekogramX_Persian)
2021-02-04 11:20:05 +00:00
- [Group Chat (Indonesia)](https://t.me/NekoxID)
2021-04-03 01:20:02 +00:00
- [Group Chat (Russian)](https://t.me/NekoXRussia)
2021-04-03 07:17:11 +00:00
- [Group Chat (Hindi)](https://t.me/NekoXHindi)
2021-04-05 19:55:48 +00:00
- [Group Chat (Turkish)](https://t.me/NekoXTurkish)
2020-06-26 04:54:48 +00:00
## NekoX Changes
2020-12-08 14:05:46 +00:00
- Most of Nekogram's features
2021-03-12 17:25:23 +00:00
- Unlimited login accounts
2020-12-17 18:16:15 +00:00
- OpenCC Chinese Convert
2021-11-06 07:39:42 +00:00
- Built-in VMess, Shadowsocks, SSR, Trojan-GFW proxies support (No longer maintained)
- Built-in public proxy (WebSocket relay via Cloudflare CDN), [documentation and for PC](https://github.com/arm64v8a/NekoXProxy)
- Proxy subscription support
2021-04-03 01:20:02 +00:00
- Ipv6 MTProxy support
2021-03-05 09:44:33 +00:00
- Able to parse all proxy subscription format: SIP008, ssr, v2rayN, vmess1, shit ios app formats, clash config and more
- Proxies import and export, remarks, speed measurement, sorting, delete unusable nodes, etc
- Scan the QR code (any link, can add a proxy)
- The ( vmess / vmess1 / ss / ssr / trojan ) proxy link in the message can be clicked
- Allow auto-disabling proxy when VPN is enabled
2020-07-27 04:49:42 +00:00
- Proxy automatic switcher
2021-11-17 13:36:59 +00:00
- Custom [Emoji packs](https://github.com/NekoX-Dev/NekoX/wiki/emoji)
2020-06-26 04:54:48 +00:00
- Add stickers without sticker pack
2021-03-05 09:44:33 +00:00
- Allow disabling vibration
2021-02-04 11:20:05 +00:00
- Allow clicking on links in self profile
2020-06-26 04:54:48 +00:00
- Sticker set list backup / restore / share
- Full InstantView translation support
- Translation support for selected text on input and in messages
- Delete all messages in group
2021-03-05 09:44:33 +00:00
- Dialog sorting is optional "Unread and can be prioritized for reminding" etc
2020-06-26 04:54:48 +00:00
- Allow to skip "regret within five seconds"
- Unblock all users support
2021-03-05 09:44:33 +00:00
- Login via QR code
- Scan and confirm the login QR code directly
- Allow clearing app data
2020-12-08 14:05:46 +00:00
- Option to not send comment first when forwarding
2021-04-03 01:20:02 +00:00
- Option to use nekox chat input menu: replace record button with a menu which contains an switch to control link preview (enabled by default)
2020-12-08 14:05:46 +00:00
- Option to disable link preview by default: to prevent the server from knowing that the link is shared through Telegram.
- Option to ignore Android-only content restrictions (except for the Play Store version).
2021-04-03 01:20:02 +00:00
- OpenKeychain client (sign / verify / decrypt / import)
2020-06-26 04:54:48 +00:00
- Google Cloud Translate / Yandex.Translate support
- Custom cache directory (supports external storage)
2021-03-05 09:44:33 +00:00
- Custom server (official, test DC)
2020-06-26 04:54:48 +00:00
- Keep the original file name when downloading files
- View the data center you belong to when you don't have an avatar
2021-03-05 09:44:33 +00:00
- Proxies, groups, channels, sticker packs are able to shared as QR codes
2020-06-26 04:54:48 +00:00
- Force English emoji keywords to be loaded
2021-03-05 09:44:33 +00:00
- Add "@Name" when long-pressing @user option
- Enhanced notification service, optional version without Google Services
2020-12-08 14:05:46 +00:00
- Don't alert "Proxy unavailable" for non-current account
2021-02-04 11:20:05 +00:00
- Option to block others from starting a secret chat with you
2021-03-05 09:44:33 +00:00
- Allow creation of group without invite
2021-02-04 11:20:05 +00:00
- Option to upgrade group to supergroup
2021-02-04 17:59:00 +00:00
- Mark dialogs as read using tab menu
2021-02-04 11:20:05 +00:00
- Improved session dialog
- Improved link long click menu
2021-03-20 04:22:12 +00:00
- Improved hide messages from blocked users feature
2021-02-04 11:20:05 +00:00
- Text replacer
2021-04-03 01:20:02 +00:00
- Persian calendar support
2021-02-04 17:59:00 +00:00
- Option to disable trending
2021-03-05 09:44:33 +00:00
- Telegram X style menu for unpinning messages
2020-06-26 04:54:48 +00:00
- Built-in Material Design themes / Telegram X style icons
2021-03-05 09:44:33 +00:00
- Enabled set auto delete timer option for private chats and private groups
- Don't process cleanup draft events after opening chat
- Support saving multiple selected messages to Saved Messages
- Support unpinning multiple selected messages
- View stats option for messages
- And more :)
2020-06-26 04:54:48 +00:00
2020-01-09 21:04:13 +00:00
## Compilation Guide
2013-10-25 15:55:11 +00:00
2020-11-04 12:43:49 +00:00
**NOTE: Building on Windows is, unfortunately, not supported.
Consider using a Linux VM or dual booting.**
**Important:**
2021-10-30 12:48:17 +00:00
0. Checkout all submodules
```
git submodule update --init --recursive
2021-10-30 12:48:17 +00:00
```
2021-03-05 09:44:33 +00:00
1. Install Android SDK and NDK (default location is $HOME/Android/SDK, otherwise you need to specify $ANDROID_HOME for it)
2020-11-04 12:43:49 +00:00
2021-03-05 09:44:33 +00:00
It is recommended to use [AndroidStudio](https://developer.android.com/studio) to install.
2020-11-04 12:43:49 +00:00
2. Install golang and yasm
2020-11-04 12:43:49 +00:00
```shell
apt install -y golang-1.16 yasm
2020-11-04 12:43:49 +00:00
```
2021-03-05 09:44:33 +00:00
3. Install Rust and its stdlib for Android ABIs, and add environment variables for it.
2020-11-04 12:43:49 +00:00
It is recommended to use the official script, otherwise you may not find rustup.
```shell
2021-01-16 16:25:30 +00:00
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain none -y
2020-11-04 12:43:49 +00:00
echo "source \$HOME/.cargo/env" >> $HOME/.bashrc && source $HOME/.cargo/env
2021-01-16 16:25:30 +00:00
2021-03-20 04:22:12 +00:00
rustup install $(cat ss-rust/src/main/rust/shadowsocks-rust/rust-toolchain)
2021-04-10 18:15:12 +00:00
rustup default $(cat ss-rust/src/main/rust/shadowsocks-rust/rust-toolchain)
2020-11-04 12:43:49 +00:00
rustup target install armv7-linux-androideabi aarch64-linux-android i686-linux-android x86_64-linux-android
```
2021-01-16 16:25:30 +00:00
4. Build native dependencies: `./run init libs`
5. Build external libraries and native code: `./run libs update`
2022-02-20 11:41:56 +00:00
6. Fill out `TELEGRAM_APP_ID` and `TELEGRAM_APP_HASH` in `local.properties`
7. Replace TMessagesProj/google-services.json if you want fcm to work.
8. Replace release.keystore with yours and fill out `ALIAS_NAME`, `KEYSTORE_PASS` and `ALIAS_PASS` in `local.properties` if you want a custom sign key.
2020-11-04 12:43:49 +00:00
2020-12-30 05:41:58 +00:00
`./gradlew assemble<Full/Mini><Debug/Release/ReleaseNoGcm>`
2020-06-26 04:54:48 +00:00
## FAQ
2020-06-26 04:54:48 +00:00
2021-04-03 01:20:02 +00:00
#### What is the differences between NekoX and Nekogram?
2020-06-26 04:54:48 +00:00
2021-04-03 01:20:02 +00:00
Developed by different developers, read the feature list above to understand the differences.
2020-06-26 04:54:48 +00:00
2021-03-05 09:44:33 +00:00
#### What is the difference between the Full and Mini version?
2020-06-26 04:54:48 +00:00
2021-03-05 09:44:33 +00:00
The full version comes with built-in proxy support for v2ray, shadowsocks, shadowsocksr, and trojan, which is usually provided to advanced users to help friends who have no computer knowledge in mainland China to bypass censorship. Don't complain about imperfect functions or ask to add other rare proxy types, you can use their clients directly.
2020-06-26 04:54:48 +00:00
#### What if I don't need a proxy?
2020-06-26 04:54:48 +00:00
Then it is recommended to use the `Mini` version.
2020-06-26 04:54:48 +00:00
2021-04-03 01:20:02 +00:00
#### What is the noGcm version?
Google Cloud Messaging, also known as gcm / fcm, message push service by google used by original Telegram android app, it requires your device to have Google Service Framework (non-free) installed.
2021-02-04 11:20:05 +00:00
#### I've encountered a bug!
2021-03-05 09:44:33 +00:00
First, make sure you have the latest version installed (check the channel, Play store versions usually have a delay).
2021-02-04 11:20:05 +00:00
2021-03-05 09:44:33 +00:00
Then, if the issue appears in the official Telegram client too, please submit it to the officials, (be careful not to show NekoX in the description and screenshots, the official developers doesn't like us!).
2021-02-04 11:20:05 +00:00
Then, please *detail* your issue, create an issue or submit it to our [group](https://t.me/NekoXChat) with #bug.
If you experience a *crash*, you also need to click on the version number at the bottom of the settings and select "Enable Log" and send it to us.
2021-03-05 09:44:33 +00:00
## Localization
2020-01-09 21:04:13 +00:00
2021-03-05 09:44:33 +00:00
Is NekoX not in your language, or the translation is incorrect or incomplete? Get involved in the translations on our [Weblate](https://hosted.weblate.org/engage/nekox/).
[![Translation status](https://hosted.weblate.org/widgets/nekox/-/horizontal-auto.svg)](https://hosted.weblate.org/engage/nekox/)
### Adding a new language
First and foremost, Android must already support the specific language and locale you want to add. We cannot work with languages that Android and the SDK do not support, the tools simply break down. Next, if you are considering adding a country-specific variant of a language (e.g. de-AT), first make sure that the main language is well maintained (e.g. de). Your contribution might be useful to more people if you contribute to the existing version of your language rather than the country-specific variant.
Anyone can create a new language via Weblate.
### Adding unofficial translations for Telegram
Current built-in language packs:
* 简体中文: [moecn](https://translations.telegram.org/moecn)
* 正體中文: [taiwan](https://translations.telegram.org/taiwan)
* 日本語: [ja_raw](https://translations.telegram.org/ja_raw)
You can [open an issue to](https://github.com/NekoX-Dev/NekoX/issues/new?&template=language_request.md) request to amend the built-in translation.
2014-03-13 18:21:38 +00:00
2020-06-26 04:54:48 +00:00
## Credits
2014-03-13 18:21:38 +00:00
2020-06-26 04:54:48 +00:00
<ul>
<li>Telegram-FOSS: <a href="https://github.com/Telegram-FOSS-Team/Telegram-FOSS/blob/master/LICENSE">GPLv2</a></li>
2020-12-08 14:05:46 +00:00
<li>Nekogram: <a href="https://gitlab.com/Nekogram/Nekogram/-/blob/master/LICENSE">GPLv2</a></li>
2020-06-26 04:54:48 +00:00
<li>v2rayNG: <a href="https://github.com/2dust/v2rayNG/blob/master/LICENSE">GPLv3</a></li>
<li>AndroidLibV2rayLite: <a href="https://github.com/2dust/AndroidLibV2rayLite/blob/master/LICENSE">LGPLv3</a></li>
<li>shadowsocks-android: <a href="https://github.com/shadowsocks/shadowsocks-android/blob/master/LICENSE">GPLv3</a></li>
<li>shadowsocksRb-android: <a href="https://github.com/shadowsocksRb/shadowsocksRb-android/blob/master/LICENSE">GPLv3</a></li>
2020-12-17 18:16:15 +00:00
<li>HanLP: <a href="https://github.com/hankcs/HanLP/blob/1.x/LICENSE">Apache License 2.0</a></li>
<li>OpenCC: <a href="https://github.com/BYVoid/OpenCC/blob/master/LICENSE">Apache License 2.0</a></li>
<li>opencc-data: <a href="https://github.com/nk2028/opencc-data">Apache License 2.0</a></li>
2021-03-01 12:22:57 +00:00
<li>android-device-list: <a href="https://github.com/pbakondy/android-device-list/blob/master/LICENSE">MIT</a> </li>
2021-04-14 01:12:29 +00:00
<li>JetBrains: for allocating free open-source licences for IDEs</li>
2021-04-05 20:15:31 +00:00
</ul>
2021-10-30 12:48:17 +00:00
[<img src=".github/jetbrains-variant-3.png" width="200"/>](https://jb.gg/OpenSource)