Git Product home page Git Product logo

nekox-dev / nekox Goto Github PK

View Code? Open in Web Editor NEW
111.0 2.0 338.0 1.05 GB

A third-party Telegram android app.

License: GNU General Public License v3.0

Makefile 0.01% C++ 33.71% C 18.45% Shell 0.02% Objective-C 0.05% Python 0.02% Objective-C++ 0.12% Assembly 1.65% Perl 0.01% Java 45.47% Kotlin 0.21% NASL 0.13% Roff 0.01% MATLAB 0.01% CMake 0.15% AIDL 0.01% GLSL 0.01% HTML 0.01%
telegram foss android anti-censorship v2ray shadowsocks shadowsocksr trojan-gfw

nekox's Introduction

NekoX

NekoX is an free and open source third-party Telegram client, based on Telegram-FOSS with features added.

中文FAQ

Get it on F-Droid Fdroid releases can not upgrade to other releases.

NekoX Changes

  • Most of Nekogram's features
  • Unlimited login accounts
  • Proxy
    • 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
    • Proxy subscription support
    • Ipv6 MTProxy support
    • 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
    • Proxy automatic switcher
    • Don't alert "Proxy unavailable" for non-current account
  • Stickers
    • Custom Emoji packs
    • Add stickers without sticker pack
    • Sticker set list backup / restore / share
  • Internationalization
    • OpenCC Chinese Convert
    • Full InstantView translation support
    • Translation support for selected text on input and in messages
    • Google Cloud Translate / Yandex.Translate support
    • Force English emoji keywords to be loaded
    • Persian calendar support
  • Additional Options
    • Option to disable vibration
    • Dialog sorting is optional "Unread and can be prioritized for reminding" etc
    • Option to skip "regret within five seconds"
    • Option to not send comment first when forwarding
    • Option to use nekox chat input menu: replace record button with a menu which contains an switch to control link preview (enabled by default)
    • 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).
    • Custom cache directory (supports external storage)
    • Custom server (official, test DC)
    • Option to block others from starting a secret chat with you
    • Option to disable trending
  • Additional Actions
    • Allow clicking on links in self profile
    • Delete all messages in group
    • Unblock all users support
    • Login via QR code
    • Scan and confirm the login QR code directly
    • Allow clearing app data
    • Proxies, groups, channels, sticker packs are able to be shared as QR codes
    • Add "@Name" when long-pressing @user option
    • Allow creating a group without inviting anyone
    • Allow upgrading a group to a supergroup
    • Mark dialogs as read using tab menu
    • Enabled set auto delete timer option for private chats and private groups
    • Support saving multiple selected messages to Saved Messages
    • Support unpinning multiple selected messages
    • View stats option for messages
  • Optimization
    • Keep the original file name when downloading files
    • View the data center you belong to when you don't have an avatar
    • Enhanced notification service, optional version without Google Services
    • Improved session dialog
    • Improved link long click menu
    • Improved hide messages from blocked users feature
    • Don't process cleanup draft events after opening chat
  • Others
    • OpenKeychain client (sign / verify / decrypt / import)
    • Text replacer
  • UI
    • Telegram X style menu for unpinning messages
    • Built-in Material Design themes / Telegram X style icons
  • And more :)

Compilation Guide

NOTE: Building on Windows is, unfortunately, not supported. Consider using a Linux VM or dual booting.

Important:

  1. Checkout all submodules
git submodule update --init --recursive
  1. Install Android SDK and NDK (default location is $HOME/Android/SDK, otherwise you need to specify $ANDROID_HOME for it)

It is recommended to use AndroidStudio to install.

  1. Install golang and yasm
apt install -y golang-1.16 yasm
  1. Install Rust and its stdlib for Android ABIs, and add environment variables for it.

It is recommended to use the official script, otherwise you may not find rustup.

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain none -y
echo "source \$HOME/.cargo/env" >> $HOME/.bashrc && source $HOME/.cargo/env

rustup install $(cat ss-rust/src/main/rust/shadowsocks-rust/rust-toolchain)
rustup default $(cat ss-rust/src/main/rust/shadowsocks-rust/rust-toolchain)
rustup target install armv7-linux-androideabi aarch64-linux-android i686-linux-android x86_64-linux-android
  1. Build native dependencies: ./run init libs
  2. Build external libraries and native code: ./run libs update
  3. Fill out TELEGRAM_APP_ID and TELEGRAM_APP_HASH in local.properties
  4. Replace TMessagesProj/google-services.json if you want fcm to work.
  5. 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.

./gradlew assemble<Full/Mini><Debug/Release/ReleaseNoGcm>

FAQ

What is the differences between NekoX and Nekogram?

Developed by different developers, read the feature list above to understand the differences.

What is the difference between the Full and Mini version?

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.

What if I don't need a proxy?

Then it is recommended to use the Mini version.

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.

I've encountered a bug!

First, make sure you have the latest version installed (check the channel, Play store versions usually have a delay).

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!).

Then, please detail your issue, create an issue or submit it to our group 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.

Localization

Is NekoX not in your language, or the translation is incorrect or incomplete? Get involved in the translations on our Weblate.

Translation status

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:

You can open an issue to request to amend the built-in translation.

Credits

nekox's People

Contributors

23rd avatar akinokaede avatar alissonlauffer avatar arm64v8a avatar backzaa avatar danalbert avatar dependabot-preview[bot] avatar drklo avatar herotux avatar hhn1611245010 avatar jsonchi avatar luvletter2333 avatar muratovas avatar natsumemio avatar nekohasekai avatar nextalone avatar notmyst33d avatar nykula avatar omg-xtao avatar proletarius101 avatar qwq233 avatar rezazoom avatar rhuba8324 avatar ruival avatar santossi avatar satouriko avatar tehcneko avatar thermatk avatar weblate avatar xaxtix avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

nekox's Issues

Jump to first Message

Is your feature request related to a problem? Please describe.
I would like to jump to the first message in a Chat / Channel on the easy way.

Describe the solution you'd like
In the Chat/Channel there could be a "Jump to first Message" in the Menu on top right.

self-destructive images aren't visible

When I try to visualize a self-destructive image there is a blur over the image and it is impossible to see.

Steps to reproduce the behavior:
Try to visualize a sent self-destructive image.

PS: I can't sent screenshots because this images can't be printed.

  • Device: Xiaomi Mi A3
  • OS: Android 10

Instant crash when video or gif appears in chat

Smartphone

  • Device: LG G4c h522y
  • OS: Android 5.0.1
  • Version: 6.2.0.1-rc05 (NoGcm)

Additional context
logcat:

I/WindowState(  858): WIN DEATH: Window{1c3e32b9 u0 nekox.messenger/org.telegram.ui.LaunchActivity}
D/InputDispatcher(  858): Focus left window: Window{1c3e32b9 u0 nekox.messenger/org.telegram.ui.LaunchActivity}
D/InputDispatcher(  858): Window went away: Window{1c3e32b9 u0 nekox.messenger/org.telegram.ui.LaunchActivity}
I/ActivityManager(  858): Process nekox.messenger (pid 29871) has died
W/ActivityManager(  858): Scheduling restart of crashed service nekox.messenger/org.telegram.messenger.NotificationsService in 1000ms
W/ActivityManager(  858): Force removing ActivityRecord{3c95819e u0 nekox.messenger/org.telegram.ui.LaunchActivity t1042}: app died, no saved state

Still can see blocked persons in chat groups

Describe the bug
Messages of blocked users appear in the preview in the chat list and on reply

To Reproduce
Ban person, enable "ignore blocker users in group"

Smartphone

  • Device: LG G4c h522y
  • OS: Android 5.0.1
  • Version 6.2.0.1

Screenshots
Blocked person:
image
Chat list:
image
Reply message:
image
When typing:
image

automatic translation request

Hope to add automatic translation.
That is able to set automatic translation for all messages of a designated user or all messages of a designated group, which will improve the efficiency of chat, especially in some mixed language groups.

Can't build the app

Describe the bug
I tried following the instructions on the readme of this repo, and also on the repo of telegram-foss, but i can't still compile the app.

Additional context
Transform's input file does not exist: /home/daniele/src/NekoX/TMessagesProj/libs/ss-rust-release.aar. (See https://issuetracker.google.com/issues/158753935)
This also applies to every other submodules included by NekoX

Add an option to bring back iOS emojis

I just found this app and it's great, but I would love the freedom of choice to bring back the default iOS emojis.
The twemojis look terrible compared to the iOS ones.

"Open in Instance View" Switcher

Good morning, I ask if you could kindly add two functions.

  • Forcing all links to open quickly, native function on telegram x
  • The possibility to choose a set of emoij function present on telegram foss
    I thank you even for your attention

Member join date in groups

Is your feature request related to a problem? Please describe.
Sometimes, it is difficult to identify when a user had joined a group chat. Although the "Recent Events" section exists in the group settings, it does not show events after 48 hours.

Describe the solution you'd like
I would like to see when a person joined by pressing and holding their name on the members list.

Describe alternatives you've considered
An alternate location would be in the pop-up menu when selecting a message.

Additional context
I feel like the pop-up when press-and-holding a member's name is more intuitive because it shows permissions and would seem less cluttered than including it when selecting a member's message. Also, if any action needs to done based on a member's join date, it is much more convenient to place it in the following menu:

Screenshot_20200906-190852

View History change

Is your feature request related to a problem? Please describe.
View history only show 1 line .... And clicking on is jumping to, if it's wrong i need to scroll again.

Describe the solution you'd like
Add another festure like "show user messages" and show all messages only from him. But in a chat bubble style... Like search but without any other messages. This could be added in the menu from the "hold down user profile picture and swipe up"

Persian Jalali Date Picker

There's a growing community of Iranian people using Nekogram X.
A custom telegram date format (converted gregorian date to jalali date) matching the local Iran calendar would be an amazing addition.
This feature is requested by the Iranian Nekogram X community.
Here is a sample of a calendar switch button implemented in a closed source local unofficial telegram:

IMG_20200715_235629_743

[Bug] Crash on key-exchange when calling someone

Describe the bug
I've tried calling some people with the latest NekoX client, but apparently it crashes when calling/getting called.

To Reproduce
Steps to reproduce the behavior:

  1. Go to the profile of person you want to call, or get called
    1.1 Click on voice or video call button (happens with both) in the top right corner (only if you plan to call)
  2. Wait for it to ring and the other person to accept the call.
  3. See the message "Exchanging encryption keys" before crashing and being returned to the launcher. (Other side gets the 'disconected' beeping tone with the same key exchange message before the call times out or gets hung up)

Logcat
Crash log attached in issue! though, not sure if this is enough, ask me for the full log if desired since I tried to only attach the specific crash
NekoX-1601444532911.log

Expected behavior
The call goes through, the other person's client rings, the other side accepts, e2ee keys exchanged and call initialized without any crashes

Screenshots:
Can't take a screenshot sadly, but the other side displays the message "Exchanging encryption keys..." as it's disconnected on the crash of the other client.

Smartphone (please complete the following information):

  • Device: Galaxy S8 (dreamlte)
  • OS: Lineage 17.1
  • Version: 7.0.1.3

Additional context
Tried both with a personal fork (modded for different gallery directory than stock NekoX) and the latest releases on this github repo, both with same results

emoji keyboard not work on Target 29

Describe the bug
When you change target Sdk to 29 for some smartphone android 10 , emoji or sticker keyboard (default telegram not keyborad android) not open

To Reproduce
Steps to reproduce the behavior:

  1. Change targetSdk to 29
  2. Compile and install.
  3. Go to chat activity
  4. Click on emoji icon
    ..

Smartphone (please complete the following information):

  • Device: Note 10 plus or ...
  • Android: 10

Blurry selfdestructive photos

Describe the bug
Selfdestructive photos sent to you by other people and/or selfdestructive photos you sent to other people using a different client will be blurry when opened on NekoX. A few people have mentioned this issue in the NekoX group as well as #169. I have done some investigation myself. Please don't close this issue dismissively.

To Reproduce
Steps to reproduce the behavior:

  1. Either someone sends you a selfdestructive photo or you send someone else a selfdestructive photo using a different client (e.g. TelegramX)
  2. Open the selfdestructive photo on NekoX

Expected behavior
This is a video of what happens in TelegramFOSS v7.1.3
tgfoss

Current behavior
This is a video of what happens in NekoX v7.1.3.
nekox

Smartphone (please complete the following information):

  • Device: Pixel2XL
  • OS: Android10
  • Version: 6.3.0.0-rc01 onwards

Additional context
To find out which version broke this, I went back and tested many versions. Version 6.2.0.3-rc03 was the last working version. From 6.3.0.0-rc01 onwards, selfdestructive photos have this problem. Also note that even in the bugged versions, if you use NekoX itself to send a selfdestructive photo to other people, it will open normally (probably due to cache or something). The commit difference between 6.2.0.3-rc03 and 6.3.0.0-rc01 is v6.2.0.3-rc03...v6.3.0.0-rc01 though I'm unsure which is the exact commit that broke it. Please take this issue seriously as I cannot use newer versions of NekoX due to this issue.

Delete image files

Describe the bug
One should be able to delete image files from cache as well

To Reproduce
Steps to reproduce the behavior:

  1. Go to Neko settings > Chat > Message menu
  2. Enable "delete downloaded file"
  3. Tap on a message that has an image
  4. You can't delete the image file

Expected behavior
Just like with videos and files, we should be able to delete downloaded image files as well

Screenshots
Screenshot_20201117-062648_1
Screenshot_20201117-062714_1

Smartphone (please complete the following information):

  • Device: Huawei Y7
  • OS: Android 8
  • Version : Nekogram X v7.2.1-rc07-full-apple-emoji arm64-v8a releaseNoGcm
    Lib v23, Core v4.32.1

Crash when adding subscription

NekoX 6.1.1.0 rc03 arm64 release.
Hi
I can't add more than one custom subscriptions for ss in nekoX
It always crash when adding that

Google Maps support

Is your feature request related to a problem? Please describe.

Yes, why the Google Maps APIs support isn't included in the GCM build?

Describe the solution you'd like

Reimplement GMaps APIs at least in the GCM build, as well with all of this features:
Google Vision face detection and barcode scanning
Google Wallet and Android Pay integration
Google Voice integration
Google SMS retrieval

Force close when click icon emoji & sticker

I have updated Nekogram X to the latest version, but I still experience forced close when clicking on the emoji or sticker icon. Hopefully this problem is fixed soon. I have tried all versions of nekogram x, either with gcm or not.

Pgp encryption

Is your feature request related to a problem? Please describe.
Since pgp is implemented in would like to encrypt messages too.

Describe the solution you'd like
Maybe add another checkbox for "encrypt message"

Original file name

Please consider to add the options to keep original file name instead of number. it will be so helpful.thankyou

[FR] change the default theme with Telegram X inspired theme.

Many Nekogram X users say they don't like their standard theme because they don't think it matches the Nekogram X style much, it would be more interesting that the day and night theme were inspired for Telegram X themes, as Nekogram X is also using icons similar to Telegram X.

report

The experimental content filtering feature doesn't work.

Importing Shadowsocks Configs From Clipboard

Can't import shadowsocks configs from clipboard.
Error: Unknown / Broken Link

Steps to reproduce the behavior:

  1. Go to proxy manager
  2. Copy a shadowsocks config to your clipboard
  3. Hit the + sign and choose the import from clipboard option

Expected behavior:

Create a shadowsocks proxy from the clipboard config

Smartphone:

  • Device: [Samsung Galaxy A7 2018]
  • OS: [Android 10]
  • Version: [6.2.0.3-rc03]

Pro Forward (Edit attached text before forwarding)

Currently there's only two options for forwarding, with quote and without quote.

It would be nice to have a third option for editing the attached text in text mesages, pictures, videos and files before forwarding.

Of course it would make the forward a non quote one by default after editing the text.
Here are some samples:

IMG_20200715_233652_074

IMG_20200715_233656_867

Hide chats

Is your feature request related to a problem? Please describe.

I would like to hide some chats and protect them with a password. (being able to use biometrics would be nice too)

Describe the solution you'd like

I'd like to have an option to select some chats and hide them, then be able to access them by doing something like long pressing the search button.

Wireguard?

Don't know if it's possible because of the wireguard's non-proxy nature but is it possible to include an embeddable library for wireguard to NekoX?

tor + obfs4proxy

hey hi
can you add tor + obfs4proxy ? with some internal bridges? and capability to add personal bridges?

Forward without quote and text

Is your feature request related to a problem? Please describe.
Sometimes I would like to forward media without the caption.

Describe the solution you'd like
Add a option to remove text from forwarding

F-Droid?

Hello, have you guys thought of putting the FOSS version in F-Droid?

Calling Crash & Proxy On Mini Versions Too

Describe the bug
Nekogram crashes as soon as the call has been connected. And the mini version also has proxy which is redundent. There is full version for that.

To Reproduce
Steps to reproduce the behavior:
Just try to call a person by any means you will see it crashes

Expected behavior
Calling should work flawlessly and there shouldn't be any proxy on mini versions

Screenshots
Sorry can't perform at this moment

Smartphone (please complete the following information):

  • Device: Pixel 4XL
  • OS: Android 11

Show Bots/admins/deleted

Is your feature request related to a problem? Please describe.
Seeing bots and admins in a group is yet not easy

Describe the solution you'd like
Add the option to filter for bots, admins and deleted users in the group info.

Auto Update / Notification

Is your feature request related to a problem? Please describe.
Going in to the channel and starting the update is like a workaround.

Describe the solution you'd like
A notification with buttons like "there is a new beta version install updates now".

Select all chats

Is your feature request related to a problem? Please describe.
I personally like to select all chats and mark them as read, as some other telegram clients have the feature

Describe the solution you'd like
I would like to have an option to select all chats at once, to do actions on all of them.

Additional context
Here is an screenshot from Bgram with the feature implemented
Screenshot_20201117070342

Multiple selections

Is your feature request related to a problem? Please describe.
Selecting multiple messages one by one is a hassle.

Describe the solution you'd like
Would be great to select the first and the last message you want to select and then press a button to automatically select all messages between.

Describe alternatives you've considered
Even if selected like 3 messages ... Just select all from first to last selected message.

Save to chat folder

Is your feature request related to a problem? Please describe.

Currently the only way to save the files/videos/images, is to save them on the Downloads folder, which makes the folder very cluttered.

Describe the solution you'd like

An option to save files of different chats in different locations, like this:

/storage/NekoX/[name of the chat]

[FR] Add Muted chats to Folders (not only in Exclude filter)

Is your feature request related to a problem? Please describe.
It was great that official Telegram finally added options to create folders. But they still put restrictions on what chats we can classify.

Describe the solution you'd like
Though it's a minor problem, I wish I could put Muted chats as the main type for some of my folders.

Describe alternatives you've considered
Additional context
That way I couldn't have to go to "All Chats" to see the Muted chats mixed with Unmuted chats.

No options to reactivate UID/DC display

#Describe the bug
Pre-release 6.0.1.14 disabled UID and DC by default, but there's no way to switch them back on.

To Reproduce
Steps to reproduce the behavior:

  1. Update to 6.0.1.14
  2. UID and DC is disabled by default (according to changelog)
  3. Went to Neko Settings but there's no option to reactivate the display.

Expected behavior
Display UID and DC (for better group administrative purpose, a good and effective way to find out spam bots)

Screenshots
n/a

Smartphone (please complete the following information):

  • Device: Samsung Galaxy S20+
  • OS: Android 10
  • Version: OneUI 2.1

Additional context
n/a

Folder Bar Changes

Is your feature request related to a problem? Please describe.

  • My fingers are not long enought to reach the top Folderbar
  • Dont like the scrolling
  • Colored icons are confusing

Describe the solution you'd like
opt-in for:

  • Folderbar to the bottom
  • Folders in TG original design
  • Align Folder Icons to the Screen width for no scrolling

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.